Dolt 安装部署指南
Dolt v2.5.0 在 Ubuntu 22.04 的完整安装部署指南:官方 tar.gz 与 install.sh 双方案实测(含 sha256 校验)、dolt config、systemd 托管 sql-server(监听 13911)、开机自启验证、远程账号与常见问题。
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.gz | Linux x86_64 | 主流服务器首选,本文方案 A/B 使用 |
| dolt-linux-arm64.tar.gz | Linux ARM64 | ARM 服务器 |
| dolt-darwin-amd64.tar.gz | macOS Intel | 桌面开发 |
| dolt-darwin-arm64.tar.gz | macOS Apple Silicon | 桌面开发 |
| dolt-windows-amd64.zip / .7z / .msi | Windows | 开发环境 |
| dolt-2.5.0-1.x86_64.rpm | RHEL/CentOS 系 | rpm 包安装 |
| dolt-2.5.0-1.aarch64.rpm | RHEL/CentOS 系 ARM | rpm 包安装 |
| install.sh | Linux/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.sh | rpm 包(RHEL 系) |
|---|---|---|---|
| 是否需联网 | 是 | 是 | 是(或离线拷包) |
| 版本可控 | 精确指定 URL | 脚本内置版本 | 包内版本 |
| 安装路径 | /usr/local/bin(可自定义) | 固定 /usr/local/bin | rpm 默认路径 |
| systemd 来源 | 本文第八节自写 unit | 本文第八节自写 unit | 不带 unit |
| 升级方式 | 重下载覆盖 | 重跑脚本 | rpm -Uvh |
| 多版本并存 | 支持(放不同目录) | 不支持(覆盖) | 不支持 |
| 适合场景 | 生产服务器(推荐) | 快速装机/CI | RHEL 系标准化 |
选择建议:生产环境用方案 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 → 删二进制与许可文件 → 删服务端数据目录 → 删全局配置目录。数据目录删除前务必确认已备份。
十一、参考链接
- 官方 Releases(含全部资产与 install.sh):https://github.com/dolthub/dolt/releases
- 官方安装文档:https://docs.dolthub.com/getting-started/installing-dolt
- sql-server 参数与 YAML 配置:https://docs.dolthub.com/sql/reference/server
- systemd 单元书写规范:https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html
- 本站关联篇目:《Dolt 介绍与选型指南》《Dolt 快速入门》《Dolt 版本化 SQL 实战》《Dolt 集成实战》