连接 Dolt 服务器
Beadbox 可以连接运行中的 Dolt SQL 服务器,在你通过 CLI 使用的 beads 数据库之上实现多用户写入和团队协作。
需要 Beadbox 0.9.12+ 在 Settings > About 中或前往以下地址检查版本 /api/version.
前提条件
开始之前,你需要以下三个组件正在运行:
| 组件 | 最低版本 | 检查方式 |
|---|---|---|
beads CLI (bd) | 0.56.x+ | bd --version |
| Dolt 服务器 | 运行中并接受连接 | dolt sql-server 在你的项目中 |
| Beadbox | 0.9.12+ | Settings > About |
你的 Dolt 服务器必须至少有一个遵循 beads_ 命名规范的数据库。这是 beads 在 Dolt 模式下运行 bd init 时创建的。Beadbox 使用这个前缀来发现 beads 数据库并忽略无关数据库。
快速开始(本地,无认证)
最快路径:在本机运行 Dolt 服务器,不配置认证。
1. 启动 Dolt 服务器
cd ~/Projects/myproject
dolt sql-serverDolt 默认监听端口 3307。
2. 打开 Beadbox
在工作区选择器中,点击 通过服务器添加(如果是首次启动,在欢迎页面找到 Advanced 卡片)。
3. 输入连接信息
| Host | 127.0.0.1 (已预填) |
| Port | 3307 (已预填) |
| User | root (已预填) |
| Password | 留空 |
| TLS | 未勾选 |
4. 点击 "Discover Databases"
Beadbox 连接服务器并运行 SHOW DATABASES,查找所有匹配 beads_* 模式的数据库。
5. 选择数据库
发现界面列出服务器上找到的所有 beads 数据库。勾选你要添加为工作区的数据库,每个数据库会分配一个本地目录路径。
6. 点击 "Add Workspaces"
Beadbox 创建本地 .beads/ 目录,其中的 metadata.json 指向你的服务器,注册工作区并打开它。
连接成功。通过 bd 在 CLI 中做的更改,或其他团队成员写入同一 Dolt 服务器的更改,将在几秒内出现在 Beadbox 中(服务器模式以 1 秒间隔轮询变更)。
使用认证连接
如果你的 Dolt 服务器需要用户名和密码:
- 按快速开始的步骤操作,但在 User 和 Password 字段中填入你的 Dolt 服务器凭据。
- 如果需要 TLS(远程服务器常见),勾选 Use TLS 复选框。
- 点击 Discover Databases 并继续发现流程。
密码处理方式
- 密码仅保存在内存中。Beadbox 不会将密码写入磁盘。
- Beadbox 重启后密码会丢失。为避免每次启动都重新输入,请在 shell 配置文件中设置 BEADS_DOLT_PASSWORD(参见 持久化密码)。
- 在底层,Beadbox 每次调用子进程时通过 BEADS_DOLT_PASSWORD 环境变量将密码传递给 bd CLI。
Hosted Dolt 和远程服务器
对于运行在远程机器、云虚拟机或 Hosted Dolt 上的 Dolt 服务器:
- Host:输入服务器的主机名或 IP 地址。
- Port:使用提供商指定的端口。Hosted Dolt 通常使用 3306。
- User/Password:输入提供商给你的凭据。
- TLS:勾选 "Use TLS"(Hosted Dolt 必须,任何远程连接都建议勾选)。
- 点击 Discover Databases,按正常流程操作。
持久化密码
Beadbox 仅在内存中保存密码,重启后会丢失。对于需要认证的服务器(本地或远程),你可以在 shell 配置文件中设置密码来跳过每次输入:
export BEADS_DOLT_PASSWORD="your-password-here"Beadbox 会自动为所有服务器模式的工作区读取此变量。如果同时设置了 UI 密码字段和环境变量,UI 字段优先。
工作原理
添加服务器工作区时,Beadbox 执行三个操作:
1. 写入连接元数据
在本地项目目录中创建 .beads/metadata.json,包含服务器连接信息:
{
"dolt_mode": "server",
"dolt_server_host": "127.0.0.1",
"dolt_server_port": 3307,
"dolt_database": "beads_myproject",
"dolt_server_user": "root",
"database": "dolt"
}启用 TLS 时,会添加 "dolt_server_tls": true 键。这个文件告诉 bd 连接远程服务器而非使用本地嵌入数据库。密码不会出现在此文件中。
2. 注册工作区
将本地目录添加到 ~/.beads/registry.json,以便 Beadbox 和 bd 在后续启动时能找到它。
3. 在运行时传递凭据
每次 Beadbox 为此工作区调用 bd 命令时,都会在子进程环境中设置 BEADS_DOLT_PASSWORD。密码仅存在于进程内存中。
故障排查
连接被拒绝
Error: connect ECONNREFUSED 127.0.0.1:3307- Dolt 是否在运行? 用 ps aux | grep dolt 检查,或在项目目录中尝试 dolt sql-server。
- 端口是否正确? Dolt 默认端口为 3307,但你可能配置了不同的端口。
- 防火墙? 在远程服务器上,确保端口对入站连接开放。
访问被拒绝
Error: Access denied for user 'root'- 需要密码? 你的 Dolt 服务器可能启用了认证。在连接表单中输入密码。
- 用户名错误? 验证用户名是否匹配具有读取权限的 Dolt 用户。
- 密码错误? 密码不会在会话之间保存。重启 Beadbox 后需要重新输入。
TLS 握手失败
Error: TLS handshake failed- TLS 复选框不匹配。 如果服务器要求 TLS,勾选 "Use TLS"。如果不支持 TLS,取消勾选。任一方向的错误都会导致握手失败。
- 自签名证书。 如果你的 Dolt 服务器使用自签名证书,可能需要将 CA 添加到系统信任存储。bd CLI 使用系统根 CA 池,会拒绝不受信任的证书。
未找到数据库
No beads databases found on 127.0.0.1:3307.
Databases must follow the beads_* naming pattern.- 命名规范。 Beadbox 只发现名称以 beads_ 开头的数据库。如果你的数据库使用了其他名称,请重命名或在 Dolt 模式下用 bd init 创建新的。
- 数据库存在但不可见? 该用户账号可能没有查看所有数据库的权限。
- 全新的服务器? 如果你刚启动 Dolt 但还没有初始化 beads,则不存在 beads 数据库。在配置了 Dolt 模式的项目目录中运行 bd init,然后重试发现。