Dolt 安装部署指南

Dolt v2.5.0 在 Ubuntu 22.04 的完整安装部署指南:官方 tar.gz 与 install.sh 双方案实测(含 sha256 校验)、dolt config、systemd 托管 sql-server(监听 13911)、开机自启验证、远程账号与常见问题。

DoltDolt2026/10/18

Dolt 安装部署指南

‍‍​​‌​> 目标:在 Ubuntu 22.04 LTS 服务器上从零安装 Dolt v2.5.0,完成校验、配置、systemd 服务托管、开机自启与 MySQL 协议服务端(dolt sql-server,本环境监听 13911 端口)的完整部署闭环;全部命令与回显均在 Ubuntu 22.04 LTS(x86_64)真实环境逐条实测通过。

一、环境信息

本文所有命令与回显所依赖的实测环境:

  • 操作系统:Ubuntu 22.04 LTS(x86_64)
  • Dolt:v2.5.0(2026-10-18 实查为官方最新稳定版,linux-amd64 tarball 约 44 MB)
  • 安装路径:/usr/local/bin/dolt(单二进制,静态链接,无外部依赖)
  • 服务端数据目录:/var/lib/dolt/server1(systemd 托管场景)
  • 服务端口:13911(默认 3306,本文用 13911 演示自定义端口)
  • 管理账号:admin / q1w2e3r4(演示口令,见「八、systemd 服务托管」节创建)
  • 下载源:https://github.com/dolthub/dolt/releases(GitHub Releases)

二、前置条件

2.1 检查系统与依赖

Dolt 是静态编译的单二进制,不依赖额外运行时;只需确认系统架构与基础工具:

uname -m && cat /etc/os-release | grep PRETTY
which curl || which wget

实测回显:

x86_64
PRETTY_NAME="Ubuntu 22.04.4 LTS"
/usr/bin/curl

⚠️ 注意:x86_64 主机下载 linux-amd64 包;ARM 主机(aarch64)下载 linux-arm64 包,其余步骤完全一致。

2.2 端口规划

  • 默认监听端口为 3306;若主机已有 MySQL 实例占用 3306,需要换端口。检查目标端口占用:
ss -tlnp | grep 13911 || echo "13911 端口空闲"

实测回显:

13911 端口空闲

三、版本选型说明

3.1 版本选择

Dolt 发布节奏极快(几乎每周 patch),建议直接使用官方最新稳定版。2026-10-18 实查 GitHub releases/latest 指向 v2.5.0。查询最新版的命令(无需记忆版本号,跟随重定向即可):

curl -s -o /dev/null -w "%{redirect_url}\n" https://github.com/dolthub/dolt/releases/latest

实测回显:

https://github.com/dolthub/dolt/releases/tag/v2.5.0

3.2 v2.5.0 官方资产清单

v2.5.0 Release 页全部资产(2026-10-18 实查):

资产文件适用平台说明
dolt-linux-amd64.tar.gzLinux x86_64主流服务器首选,本文方案 A/B 使用
dolt-linux-arm64.tar.gzLinux ARM64ARM 服务器
dolt-darwin-amd64.tar.gzmacOS Intel桌面开发
dolt-darwin-arm64.tar.gzmacOS Apple Silicon桌面开发
dolt-windows-amd64.zip / .7z / .msiWindows开发环境
dolt-2.5.0-1.x86_64.rpmRHEL/CentOS 系rpm 包安装
dolt-2.5.0-1.aarch64.rpmRHEL/CentOS 系 ARMrpm 包安装
install.shLinux/macOS官方一键安装脚本,本文方案 B 使用

关键差异:tar.gz 通用性最强、可控性最好(可自定路径与版本并存);install.sh 最省事但版本跟随脚本内置值;rpm 仅适合 RHEL 系发行版。本文以方案 A(tar.gz)为主线。

四、在线安装方案 A:官方 tar.gz 手动安装(推荐)

4.1 方案说明

从 GitHub Releases 下载 linux-amd64 tarball,校验哈希后解压,把单二进制放入 /usr/local/bin。全程约 1 分钟,不产生额外文件。

4.2 下载与校验

cd /tmp
curl -L -o dolt-linux-amd64.tar.gz https://github.com/dolthub/dolt/releases/download/v2.5.0/dolt-linux-amd64.tar.gz
sha256sum dolt-linux-amd64.tar.gz
ls -l dolt-linux-amd64.tar.gz

实测回显:

-rw-r--r-- 1 root root 44196028 10月 18 11:08 dolt-linux-amd64.tar.gz
639b8042d1ea46ebf6b645a002fc787134dbe1dc02888cc51a51d1d3eb557c93  dolt-linux-amd64.tar.gz

💡 说明:sha256 校验值 639b8042... 为 v2.5.0 linux-amd64 包的实测值;升级到其他版本时校验值会不同,用于确认「下载完整且未被篡改」。GitHub 直连缓慢的环境可走代理下载(如 curl -x http://<代理地址> -LO <URL>)。

4.3 解压并查看包结构

tar -tzf dolt-linux-amd64.tar.gz
tar -xzf dolt-linux-amd64.tar.gz
file dolt-linux-amd64/bin/dolt

实测回显:

dolt-linux-amd64/
dolt-linux-amd64/bin/
dolt-linux-amd64/bin/dolt
dolt-linux-amd64/LICENSES
dolt-linux-amd64/bin/dolt: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=e6c2c3b7b390b501550661fc803d1f5e190f1c57, stripped

包内只有 bin/dolt 一个二进制与 LICENSES 文件;statically linked 表明静态编译,任何同架构 Linux 均可直接运行。

4.4 安装到系统路径并验证

cp dolt-linux-amd64/bin/dolt /usr/local/bin/dolt
cp dolt-linux-amd64/LICENSES /usr/local/bin/dolt.licenses
which dolt && dolt version

实测回显:

/usr/local/bin/dolt
dolt version 2.5.0

⚠️ 注意:dolt version 可能伴随 Warning: unable to query latest released Dolt version,是联网检查新版失败的提示(离线环境常态),不影响功能。安装即完成——Dolt 无需 make install、无配置文件依赖。

五、在线安装方案 B:官方 install.sh 一键脚本

5.1 方案说明

官方在 Release 页提供 install.sh(3.2KB),自动识别 OS/架构、下载对应 tarball 并安装到 /usr/local/bin。适合快速装机或 CI 环境。

5.2 下载并执行脚本

先下载脚本查看内容(生产机器执行第三方脚本前应先审阅),再运行:

cd /tmp
curl -L -o dolt-install.sh https://github.com/dolthub/dolt/releases/download/v2.5.0/install.sh
head -12 dolt-install.sh
bash dolt-install.sh
dolt version

实测回显(脚本头 12 行):

#!/bin/bash

# This script installs dolt on your Linux or macOS computer.
# It should be run as root, and can be run directly from a GitHub
# release, for example as:
#
#   curl https://github.com/dolthub/dolt/releases/download/v2.5.0/install.sh | sudo bash
#
# All downloads occur over HTTPS from the Github releases page.

if test -z "$BASH_VERSION"; then

实测回显(脚本执行):

Downloading: https://github.com/dolthub/dolt/releases/download/v2.5.0/dolt-linux-amd64.tar.gz
Installing dolt into /usr/local/bin.
dolt version 2.5.0

脚本实际做的是方案 A 的自动化:下载 tarball → 解压 → 覆盖安装到 /usr/local/bin。已装过旧版时它就是「升级」操作。

六、方案对比与选择建议

维度方案 A:tar.gz 手动方案 B:install.shrpm 包(RHEL 系)
是否需联网是是是(或离线拷包)
版本可控精确指定 URL脚本内置版本包内版本
安装路径/usr/local/bin(可自定义)固定 /usr/local/binrpm 默认路径
systemd 来源本文第八节自写 unit本文第八节自写 unit不带 unit
升级方式重下载覆盖重跑脚本rpm -Uvh
多版本并存支持(放不同目录)不支持(覆盖)不支持
适合场景生产服务器(推荐)快速装机/CIRHEL 系标准化

选择建议:生产环境用方案 A(每一步可控、可审计、可多版本并存);个人开发机或 CI 用方案 B 一步到位;RHEL/CentOS 运维规范团队用 rpm 配合 yum 版本管理。

七、配置说明(dolt config)

7.1 全局配置

Dolt 配置分全局(~/.dolt/config_global.json)与仓库级(<repo>/.dolt/config.json)两层。首次使用必须设置提交者身份,否则 dolt commit 会失败:

dolt config --global --add user.email "admin@quzuo.net"
dolt config --global --add user.name "admin"
dolt config --global --list

实测回显:

user.email = admin@quzuo.net
user.name = admin

7.2 常用配置项

配置项说明示例
user.name / user.email提交作者身份,commit 必需dolt config --global --add user.name admin
init.defaultbranch新仓库默认初始分支dolt config --global --add init.defaultbranch main

查看单项与修改均为 dolt config --global --get/--add <key> [value];仓库级配置把 --global 换成 --local,需在仓库目录内执行。

八、systemd 服务托管与开机自启

本节把 dolt sql-server(MySQL 兼容服务端)包装成 systemd 服务,实现开机自启与崩溃自动拉起。先手工准备服务端数据目录,再托管给 systemd。

8.1 创建服务端数据目录并初始化数据库

dolt sql-server 以「工作目录下的每个 dolt 仓库子目录 = 一个 database」的方式组织数据。建立服务端数据目录并初始化一个业务库:

mkdir -p /var/lib/dolt/server1/shopdb
cd /var/lib/dolt/server1/shopdb
dolt init
dolt sql -q "create table t1 (id int primary key, val varchar(50)); insert into t1 values (1, 'hello-dolt'); call dolt_add(\"-A\"); call dolt_commit(\"-m\", \"init t1\")"

实测回显:

Successfully initialized dolt data repository.

+--------+
| status |
+--------+
| 0      |
+--------+

+----------------------------------+
| hash                             |
+----------------------------------+
| gl7lggjfjdiunrfec29n80ibj9o9u3v7 |
+----------------------------------+

💡 说明:call dolt_add("-A") / call dolt_commit("-m", ...) 是版本化操作的 SQL 存储过程形态,与 CLI 的 dolt add/commit 等价;完整对照见《Dolt 版本化 SQL 实战》。

8.2 手工启动一次验证参数正确

托管前先手工拉起确认端口与目录无误:

nohup dolt sql-server -H 0.0.0.0 -P 13911 > /tmp/dolt-test.log 2>&1 &
sleep 3
ss -tlnp | grep 13911
tail -4 /tmp/dolt-test.log
kill %1

实测回显:

LISTEN 0      4096               *:13911            *:*    users:(("dolt",pid=1766847,fd=18))
time="2026-10-18T11:15:12+08:00" level=info msg="Creating root@localhost superuser"
time="2026-10-18T11:15:12+08:00" level=info msg="Server ready. Accepting connections."

首次启动日志可见 Creating root@localhost superuser——服务端自动创建仅限本机连接的 root(无密码)账号。确认无误后 kill %1 停掉手工实例,交给 systemd。

8.3 编写 systemd 单元文件

创建 /etc/systemd/system/dolt.service:

vi /etc/systemd/system/dolt.service

文件内容:

[Unit]
Description=Dolt MySQL-compatible database server
Documentation=https://docs.dolthub.com
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/var/lib/dolt/server1
ExecStart=/usr/local/bin/dolt sql-server -H 0.0.0.0 -P 13911
Restart=on-failure
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

逐项说明:

  • WorkingDirectory=/var/lib/dolt/server1:服务端数据目录,该目录下每个 dolt 仓库子目录成为一个 database;
  • ExecStart 中 -H 0.0.0.0 允许远程连接(默认 localhost 仅本机),-P 13911 指定监听端口(默认 3306);
  • Restart=on-failure + RestartSec=5:进程异常退出后 5 秒自动拉起;
  • LimitNOFILE=65536:提高文件句柄上限,适配较多连接与表文件。

8.4 启动、自启与状态验证

systemctl 每行操作一个单元:

systemctl daemon-reload
systemctl enable dolt
systemctl start dolt

实测回显(enable):

Created symlink '/etc/systemd/system/multi-user.target.wants/dolt.service' → '/etc/systemd/system/dolt.service'.

状态与自启验证:

systemctl is-active dolt
systemctl is-enabled dolt
systemctl status dolt --no-pager -l

实测回显:

active
enabled
● dolt.service - Dolt MySQL-compatible database server
     Loaded: loaded (/etc/systemd/system/dolt.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-10-18 03:17:16 UTC; 3s ago
   Main PID: 482 (dolt)
      Tasks: 15 (limit: 5753)
     Memory: 43.5M (peak: 43.8M)
     CGroup: /system.slice/dolt.service
             └─482 /usr/local/bin/dolt sql-server -H 0.0.0.0 -P 13911

💡 说明:实测常驻内存约 43 MB——单二进制空载运行开销极小。

8.5 重启服务器验证开机自启

重启服务器(或云主机控制台重启实例)后直接验证:

systemctl is-active dolt
systemctl is-enabled dolt
mysql -h 127.0.0.1 -P 13911 -u root -e "select '重启后服务自动拉起 OK' as verify"

实测回显:

active
enabled

+--------------------------+
| verify                   |
+--------------------------+
| 重启后服务自动拉起 OK    |
+--------------------------+

服务在系统重启后由 systemd 自动拉起,mysql 客户端直连成功(客户端安装与连接细节见《Dolt 集成实战》)。

8.6 创建远程管理账号

自动创建的 root@localhost 仅允许本机连接,远程连接需显式建号授权(演示口令 q1w2e3r4):

mysql -h 127.0.0.1 -P 13911 -u root -e "create user 'admin'@'%' identified by 'q1w2e3r4'; grant all privileges on *.* to 'admin'@'%'; select user, host from mysql.user"

实测回显:

user            host
__dolt_local_user__     localhost
admin           %
event_scheduler localhost
root            localhost

从另一台机器(或本机另一网卡地址)验证远程连接:

mysql -h <服务器IP> -P 13911 -u admin -pq1w2e3r4 -e "show databases"

实测回显(本机实测,以服务器内网地址连接):

Database
information_schema
mysql
shopdb

⚠️ 注意:-pq1w2e3r4 会在 shell 历史与进程列表留下明文口令,演示环境可接受;生产环境建议交互式输入或使用 mysql_config_editor。__dolt_local_user__ 是 Dolt 服务端的内置本机账号,不要删除或修改。

九、常见问题

Q1:dolt version 有 Warning: unable to query latest released Dolt version 告警? 这是启动时联网查询最新版本失败(离线/网络受限)的提示,仅影响「检查更新」,所有本地功能正常,可忽略。

Q2:远程连接报 ERROR 1045 (28000): Access denied for user 'root'? 自动创建的 superuser 是 root@localhost,只接受本机连接。按 8.6 节创建 'admin'@'%' 远程账号再连。

Q3:启动报端口被占用 bind: address already in use? ss -tlnp | grep 13911 找出占用进程;3306 被宿主 MySQL 占用时,用 -P 13911 换端口(本文即如此),或调整 unit 中 ExecStart 的 -P 值后 systemctl daemon-reload && systemctl restart dolt。

Q4:升级到新版本怎么做? 单二进制覆盖即可:下载新版 tarball → cp dolt-linux-<arch>/bin/dolt /usr/local/bin/dolt → systemctl restart dolt。数据格式向后兼容,升级前建议对仓库做一次备份(复制目录或 dolt backup)。

Q5:想同时保留两个版本怎么办? 把不同版本二进制放不同路径(如 /opt/dolt-2.5.0/bin/dolt 与 /opt/dolt-2.4.0/bin/dolt),需要哪个用全路径调用;systemd 的 ExecStart 写全路径即可为每个版本定义独立服务。

Q6:dolt sql-server 的完整 YAML 配置怎么用? 支持 --config <file> 传 YAML(此时命令行参数被忽略)。查看全部字段与默认值的命令:dolt sql-server --help,帮助中内置了带默认值的完整示例(listener.port 默认 3306、listener.max_connections 默认 1000、behavior.autocommit 默认 true 等)。

十、卸载与清理

systemctl stop dolt
systemctl disable dolt
rm /etc/systemd/system/dolt.service
systemctl daemon-reload
rm /usr/local/bin/dolt /usr/local/bin/dolt.licenses
rm -rf /var/lib/dolt
rm -rf ~/.dolt

实测回显(stop/disable):

Removed '/etc/systemd/system/multi-user.target.wants/dolt.service'.

依次含义:停服务 → 取消自启 → 删 unit → 重载 systemd → 删二进制与许可文件 → 删服务端数据目录 → 删全局配置目录。数据目录删除前务必确认已备份。

十一、参考链接