Подключение к серверу Dolt

Beadbox может подключаться к работающему SQL-серверу Dolt, обеспечивая многопользовательский доступ и командные рабочие процессы поверх тех же баз данных beads, которые вы используете из CLI.

Требуется Beadbox 0.15.0+ Проверьте вашу версию в Настройки > О программе или на /api/version.

Предварительные требования

Перед началом вам нужны три работающих компонента:

КомпонентМинимальная версияПроверка
beads CLI (bd)0.58.0+bd --version
Сервер DoltЗапущен и принимает подключенияdolt sql-server в вашем проекте
Beadbox0.15.0+Настройки > О программе

На вашем сервере Dolt должна быть хотя бы одна база данных, созданная с помощью bd init. Beadbox обнаруживает все пользовательские базы данных на сервере (системные базы, такие как information_schema, исключаются).

Быстрый старт (локально, без аутентификации)

Самый быстрый способ: сервер Dolt на вашей машине без настроенной аутентификации.

1. Запустите сервер Dolt

cd ~/Projects/myproject
bd dolt start

bd запускает Dolt на порту, назначенном операционной системой, и сохраняет его в .beads/dolt-server.port. Порт выводится в терминале. Если вместо этого вы запустите dolt sql-server напрямую, по умолчанию используется порт 3307.

2. Откройте Beadbox

В окне выбора воркспейса нажмите Использовать существующий воркспейс (или найдите карточку Дополнительно на экране приветствия при первом запуске).

Tip: Или нажмите «Сканировать серверы» для автоматического обнаружения запущенных серверов Dolt на localhost. Если ваш сервер найден, Beadbox автоматически заполнит хост и порт.

3. Введите параметры подключения

Хост127.0.0.1 (заполнено заранее)
ПортПроверьте вывод терминала от bd dolt start или загляните в .beads/dolt-server.port
Пользовательroot (заполнено заранее)
Парольоставьте пустым
TLSне отмечено

4. Нажмите "Обнаружить базы данных"

Beadbox подключается к серверу и выполняет SHOW DATABASES для поиска всех пользовательских баз данных.

5. Выберите базы данных

На экране обнаружения перечислены все найденные базы данных beads на сервере. Отметьте те, которые хотите добавить как воркспейсы. Для каждой назначается локальный путь к каталогу.

6. Нажмите "Добавить воркспейсы"

Если у вас есть локальный каталог проекта с .beads/, Beadbox обновляет его metadata.json с деталями подключения к серверу. Если вы подключаетесь к удалённому серверу без локального проекта, Beadbox создаёт заглушку воркспейса в ~/.beadbox/servers/ со своим metadata.json. В обоих случаях воркспейс регистрируется и открывается сразу.

Вы подключены. Изменения, сделанные через bd в CLI или другими членами команды, пишущими в тот же сервер Dolt, появятся в Beadbox в течение нескольких секунд (серверный режим опрашивает изменения с интервалом в 2 секунды).

Подключение с аутентификацией

Если ваш сервер Dolt требует имя пользователя и пароль:

  1. Выполните те же шаги, что и в Быстром старте, но заполните поля Пользователь и Пароль учётными данными вашего сервера Dolt.
  2. Если требуется TLS (обычно для удалённых серверов), установите флажок Использовать TLS.
  3. Нажмите Обнаружить базы данных и продолжите обнаружение.

Как обрабатываются пароли

  • Пароли хранятся только в оперативной памяти. Beadbox никогда не записывает ваш пароль на диск.
  • При перезапуске Beadbox пароль теряется. Задайте BEADS_DOLT_PASSWORD в профиле вашей оболочки, чтобы не вводить его при каждом запуске (см. Сохранение пароля).
  • Внутри Beadbox передаёт пароль в bd CLI через переменную окружения BEADS_DOLT_PASSWORD при каждом вызове подпроцесса.

Hosted Dolt и удалённые серверы

Для серверов Dolt, работающих на удалённой машине, облачной виртуальной машине или Hosted Dolt:

  1. Хост: Введите имя хоста или IP-адрес вашего сервера.
  2. Порт: Используйте порт, указанный вашим провайдером. Hosted Dolt обычно использует 3306.
  3. Пользователь/Пароль: Введите учётные данные от вашего провайдера.
  4. TLS: Отметьте "Использовать TLS" (обязательно для Hosted Dolt и рекомендуется для любого удалённого подключения).
  5. Нажмите Обнаружить базы данных и продолжите как обычно.

Сохранение пароля

Beadbox хранит пароли только в оперативной памяти, поэтому они теряются при перезапуске. Для любого сервера с аутентификацией (локального или удалённого) вы можете избежать повторного ввода пароля, задав его в профиле оболочки:

export BEADS_DOLT_PASSWORD="your-password-here"

Beadbox подхватывает это автоматически для всех воркспейсов в серверном режиме. Поле пароля в интерфейсе имеет приоритет, если заданы оба.

Как это работает

При добавлении серверного воркспейса Beadbox выполняет три действия:

1. Записывает метаданные подключения

Записывает файл .beads/metadata.json с деталями подключения к серверу. Для локальных проектов этот файл находится в каталоге проекта. Для подключений только к серверу (без локального проекта) он размещается в ~/.beadbox/servers/.

{
  "dolt_mode": "server",
  "dolt_server_host": "127.0.0.1",
  "dolt_server_port": 13842,
  "dolt_database": "myproject",
  "dolt_server_user": "root",
  "database": "dolt"
}

При включённом TLS добавляется ключ "dolt_server_tls": true. Этот файл указывает bd подключаться к удалённому серверу, а не запускать локальный автоматически. Пароль намеренно отсутствует в этом файле.

2. Регистрирует воркспейс

Воркспейс добавляется в ~/.beadbox/registry.json, чтобы Beadbox и bd могли найти его при следующих запусках.

3. Передаёт учётные данные во время выполнения

Каждый раз, когда Beadbox вызывает команду bd для этого воркспейса, он устанавливает BEADS_DOLT_PASSWORD в окружении подпроцесса. Пароль существует только в памяти процесса.

Устранение неполадок

Отказано в подключении

Error: connect ECONNREFUSED 127.0.0.1:<port>
  • Dolt запущен? Проверьте с помощью ps aux | grep dolt или попробуйте dolt sql-server в каталоге проекта.
  • Правильный порт? Если вы запустили Dolt через bd dolt start, порт сохраняется в .beads/dolt-server.port. Проверьте текущее значение в этом файле. При запуске dolt sql-server напрямую по умолчанию используется порт 3307.
  • Файрвол? На удалённых серверах убедитесь, что порт открыт для входящих подключений.

Доступ запрещён

Error: Access denied for user 'root'
  • Требуется пароль? На вашем сервере Dolt может быть включена аутентификация. Введите пароль в форме подключения.
  • Неправильный пользователь? Убедитесь, что имя пользователя соответствует пользователю Dolt с правами на чтение.
  • Неправильный пароль? Пароли не сохраняются между сессиями. Введите его повторно после перезапуска Beadbox.

Ошибка TLS-рукопожатия

Error: TLS handshake failed
  • Несовпадение флажка TLS. Если сервер требует TLS, отметьте "Использовать TLS". Если он не поддерживает TLS, снимите флажок. Неправильная настройка в любом направлении вызывает ошибку рукопожатия.
  • Самоподписанные сертификаты. Если ваш сервер Dolt использует самоподписанный сертификат, возможно, потребуется добавить центр сертификации в системное хранилище доверия. bd CLI использует системный пул корневых сертификатов и отклоняет недоверенные сертификаты.

Базы данных не найдены

No databases found on 127.0.0.1:<port>.
Verify the Dolt server has at least one database created with bd init.
  • Соглашение об именовании. Убедитесь, что bd init был запущен хотя бы в одном каталоге проекта. База данных должна отображаться в SHOW DATABASES на вашем сервере Dolt.
  • База данных существует, но не видна? У учётной записи пользователя может не быть разрешения видеть все базы данных.
  • Свежий сервер? Если вы только что запустили Dolt без инициализации beads, баз данных beads ещё нет. Выполните bd init в каталоге проекта, затем повторите обнаружение.