Conectando a um Servidor Dolt

O Beadbox pode se conectar a um servidor Dolt SQL em execução, oferecendo acesso multi-escritor e fluxos de trabalho em equipe sobre os mesmos bancos de dados beads que você usa pelo CLI.

Requer Beadbox 0.15.0+ Verifique sua versão em Configurações > Sobre ou em /api/version.

Pré-requisitos

Antes de começar, você precisa de três coisas funcionando:

ComponenteVersão MínimaVerificar
CLI beads (bd)0.58.0+bd --version
Servidor DoltEm execução e aceitando conexõesdolt sql-server no seu projeto
Beadbox0.15.0+Configurações > Sobre

Seu servidor Dolt deve ter pelo menos um banco de dados criado por bd init. O Beadbox descobre todos os bancos de dados de usuário no servidor (bancos de dados do sistema como information_schema são excluídos).

Início Rápido (local, sem autenticação)

O caminho mais rápido: um servidor Dolt na sua própria máquina sem autenticação configurada.

1. Inicie seu servidor Dolt

cd ~/Projects/myproject
bd dolt start

O bd inicia o Dolt em uma porta atribuida pelo sistema operacional e a armazena em .beads/dolt-server.port. A porta e exibida na saida do terminal. Se voce executar dolt sql-server diretamente, a porta padrao e 3307.

2. Abra o Beadbox

No seletor de workspace, clique em Usar workspace existente (ou encontre o cartão Avancado na tela de boas-vindas se for sua primeira execucao).

Tip: Alternativamente, clique em Escanear servidores para detectar automaticamente servidores Dolt em execucao no localhost. Se seu servidor for encontrado, o Beadbox preenche o host e a porta automaticamente.

3. Insira os detalhes da conexão

Host127.0.0.1 (pré-preenchido)
PortaVerifique a saida do terminal de bd dolt start, ou consulte .beads/dolt-server.port
Usuárioroot (pré-preenchido)
Senhadeixe vazio
TLSdesmarcado

4. Clique em "Descobrir Bancos de Dados"

O Beadbox se conecta ao servidor e executa SHOW DATABASES para encontrar todos os bancos de dados de usuário.

5. Selecione os bancos de dados

A tela de descoberta lista todos os bancos de dados beads encontrados no servidor. Marque os que você quer adicionar como workspaces. Cada um recebe um caminho de diretório local.

6. Clique em "Adicionar Workspaces"

Se voce tem um diretorio de projeto local com .beads/, o Beadbox atualiza seu metadata.json com os detalhes da conexao do servidor. Se voce esta conectando a um servidor remoto sem um projeto local, o Beadbox cria um workspace stub em ~/.beadbox/servers/ com seu proprio metadata.json. Em ambos os casos, o workspace e registrado e abre imediatamente.

Voce esta conectado. Alteracoes feitas pelo bd no CLI ou por outros membros da equipe escrevendo no mesmo servidor Dolt aparecerao no Beadbox em alguns segundos (o modo servidor faz polling de alteracoes em intervalos de 2 segundos).

Conectando com Autenticação

Se seu servidor Dolt requer usuário e senha:

  1. Siga os mesmos passos do Início Rápido, mas preencha os campos Usuário e Senha com as credenciais do seu servidor Dolt.
  2. Se TLS for necessário (comum para servidores remotos), marque a caixa Usar TLS.
  3. Clique em Descobrir Bancos de Dados e prossiga com a descoberta.

Como as senhas são tratadas

  • As senhas ficam apenas na memória. O Beadbox nunca grava sua senha em disco.
  • Quando o Beadbox reinicia, a senha e perdida. Defina BEADS_DOLT_PASSWORD no perfil do seu shell para evitar digita-la a cada inicializacao (veja Persistindo a Senha).
  • Por baixo dos panos, o Beadbox passa a senha para o CLI bd através da variável de ambiente BEADS_DOLT_PASSWORD em cada invocação de subprocesso.

Dolt Hospedado e Servidores Remotos

Para servidores Dolt rodando em uma máquina remota, VM na nuvem ou Hosted Dolt:

  1. Host: Insira o hostname ou IP do seu servidor.
  2. Porta: Use a porta especificada pelo seu provedor. Hosted Dolt geralmente usa 3306.
  3. Usuário/Senha: Insira as credenciais do seu provedor.
  4. TLS: Marque "Usar TLS" (obrigatório para Hosted Dolt e recomendado para qualquer conexão remota).
  5. Clique em Descobrir Bancos de Dados e prossiga normalmente.

Persistindo a Senha

O Beadbox mantém as senhas apenas na memória, então elas são perdidas ao reiniciar. Para qualquer servidor que requer autenticação (local ou remoto), você pode pular a reentrada da senha configurando-a no perfil do seu shell:

export BEADS_DOLT_PASSWORD="your-password-here"

O Beadbox reconhece isso automaticamente para todos os workspaces em modo servidor. O campo de senha da interface tem precedência se ambos estiverem definidos.

Como Funciona

Quando você adiciona um workspace de servidor, o Beadbox faz três coisas:

1. Grava metadados de conexão

Ele grava um .beads/metadata.json com os detalhes da conexao do servidor. Para projetos locais, este arquivo fica no diretorio do projeto. Para conexoes somente servidor (sem projeto local), ele vai em ~/.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"
}

Quando TLS esta habilitado, uma chave "dolt_server_tls": true e adicionada. Este arquivo diz ao bd para conectar a um servidor remoto em vez de iniciar automaticamente um servidor local. A senha e intencionalmente omitida deste arquivo.

2. Registra o workspace

O workspace e adicionado ao ~/.beadbox/registry.json para que o Beadbox e o bd possam encontra-lo em futuras execucoes.

3. Passa credenciais em tempo de execução

Toda vez que o Beadbox invoca um comando bd para este workspace, ele define BEADS_DOLT_PASSWORD no ambiente do subprocesso. A senha existe apenas na memória do processo.

Solução de Problemas

Conexão recusada

Error: connect ECONNREFUSED 127.0.0.1:<port>
  • O Dolt está rodando? Verifique com ps aux | grep dolt ou tente dolt sql-server no diretório do projeto.
  • Porta correta? Se voce iniciou o Dolt via bd dolt start, a porta e armazenada em .beads/dolt-server.port. Verifique esse arquivo para o valor atual. O dolt sql-server executado diretamente usa a porta padrao 3307.
  • Firewall? Em servidores remotos, certifique-se de que a porta está aberta para conexões de entrada.

Acesso negado

Error: Access denied for user 'root'
  • Senha necessária? Seu servidor Dolt pode ter autenticação habilitada. Insira a senha no formulário de conexão.
  • Usuário errado? Verifique se o nome de usuário corresponde a um usuário Dolt com acesso de leitura.
  • Senha errada? As senhas não são salvas entre sessões. Digite-a novamente após reiniciar o Beadbox.

Falha no handshake TLS

Error: TLS handshake failed
  • Divergência na opção TLS. Se o servidor requer TLS, marque "Usar TLS". Se não suporta TLS, desmarque. Ter isso errado em qualquer direção causa falha no handshake.
  • Certificados autoassinados. Se seu servidor Dolt usa um certificado autoassinado, você pode precisar adicionar a CA ao repositório de confiança do sistema. O CLI bd usa o pool de CA raiz do sistema e rejeitará certificados não confiáveis.

Nenhum banco de dados encontrado

No databases found on 127.0.0.1:<port>.
Verify the Dolt server has at least one database created with bd init.
  • Convenção de nomenclatura. Verifique se bd init foi executado em pelo menos um diretorio de projeto. O banco de dados deve aparecer em SHOW DATABASES no seu servidor Dolt.
  • Banco de dados existe mas não aparece? A conta de usuário pode não ter permissão para ver todos os bancos de dados.
  • Servidor novo? Se voce acabou de iniciar o Dolt sem inicializar o beads, nao existem bancos de dados beads ainda. Execute bd init em um diretorio de projeto, depois tente a descoberta novamente.