Skip to main content

Visão geral

Compilar o VillageSQL a partir do código-fonte oferece a você os recursos mais recentes e permite personalizar a compilação para o seu ambiente específico.

Pré-requisitos

Antes de começar, certifique-se de ter os seguintes itens instalados:
  • Git - Para clonar o repositório
  • CMake 3.16 ou superior - Gerador de sistema de compilação
  • Compilador C++ - GCC 8+, Clang 8+ ou MSVC 2019+
  • Ferramentas de compilação - make, ninja ou equivalente
  • Bibliotecas de desenvolvimento - OpenSSL, ncurses, pkg-config, bison e outras dependências do MySQL

Instalar dependências

Ubuntu/Debian:
macOS (usando Homebrew): Primeiro, instale o Homebrew caso ainda não o tenha:
Em seguida, instale as dependências:

Passo 1: Clonar o repositório

Clone o repositório do VillageSQL Server a partir do GitHub. Clone para o seu diretório pessoal (home) para que os passos do CMake abaixo funcionem sem modificações:
O repositório ocupa vários GB por conta da base de código do MySQL.

Passo 2: Configurar com o CMake

Crie um diretório de compilação fora do repositório e configure o projeto: Linux:
macOS:
Usuários de Linux: Use $HOME para caminhos absolutos. Usuários de macOS: Use ~ (til). Substitua o caminho do repositório pela localização real do seu clone, se for diferente.

Opções do CMake explicadas

  • <path-to-repo> - Caminho para o repositório clonado do VillageSQL (use $HOME no Linux, ~ no macOS)
  • -DWITH_DEBUG=1 - Habilita símbolos de depuração (recomendado para desenvolvimento)
  • -DCMAKE_INSTALL_PREFIX=~/mysql - Define o diretório de instalação
  • -DWITH_SSL=system - Usa a biblioteca OpenSSL do sistema (obrigatório no macOS)

Opções adicionais do CMake

Compilação de produção sem símbolos de depuração: Linux:
macOS:
Com comentário de compilação personalizado: Linux:
macOS:
Modo de desenvolvedor com avisos mais rigorosos: Linux:
macOS:
Se precisar reconfigurar, limpe primeiro o cache do CMake (execute a partir do diretório de compilação):

Passo 3: Compilar o código

Compile o VillageSQL usando make com compilação paralela. A partir do diretório de compilação: Compilar somente o servidor (recomendado para desenvolvimento):
Compilar tudo:
Ajuste o paralelismo (-j10) de acordo com os núcleos da sua CPU. Subtraia de 2 a 4 do total de núcleos para manter o sistema responsivo. Por exemplo, em uma máquina de 12 núcleos, use -j10.
Quando concluir, verifique se o binário do servidor foi compilado: Linux:
macOS:

Passo 4: Inicializar o banco de dados

Antes de iniciar o servidor pela primeira vez, inicialize o diretório de dados: Linux: Produção (com senha gerada - recomendado):
Desenvolvimento (sem senha - opcional):
Executando como root (Docker ou sudo): Se estiver executando como root (por exemplo, no Docker), o MySQL exige a flag --user=root:
macOS: Produção (com senha gerada - recomendado):
Desenvolvimento (sem senha - opcional):
Use --initialize (com senha) para configurações semelhantes às de produção. Use --initialize-insecure (sem senha) apenas para desenvolvimento e testes locais. Ao usar --initialize, uma senha temporária será gerada e exibida no console: A temporary password is generated for root@localhost: <password>
Verifique se a inicialização foi bem-sucedida conferindo se os bancos de dados de sistema foram criados: Linux:
macOS:

Passo 5: Iniciar o servidor

Inicie o servidor VillageSQL: Linux:
Executando como root (Docker ou sudo):
macOS:
A flag --gdb instala um manipulador de SIGINT para que Ctrl-C interrompa o servidor de forma limpa, o que é útil ao executá-lo interativamente a partir de um terminal. Para executar em segundo plano, adicione --daemonize ao comando mysqld.

Passo 6: Conectar com o cliente MySQL

Abra um novo terminal e conecte-se ao servidor usando o cliente MySQL: Linux: Se estiver usando —initialize-insecure (sem senha):
Se estiver usando —initialize (com senha gerada):
macOS: Se estiver usando —initialize-insecure (sem senha):
Se estiver usando —initialize (com senha gerada):
Você deverá ver o prompt do MySQL:

Verificar a instalação

Verifique se você está executando o VillageSQL:
As compilações de desenvolvimento incluem o hash do commit do git na string de versão:

Passo 7: Configurar usuários e banco de dados

Alterar a senha do root

Se você usou --initialize, altere a senha temporária:

Criar um usuário de desenvolvimento

Para o desenvolvimento diário, crie um usuário que não seja root:
Saia e reconecte-se como o seu novo usuário: Linux:
macOS:

Criar um banco de dados

Conecte-se a um banco de dados específico: mysql -u developer -p -D my_database
Para depuração com GDB, execução de testes e contribuição para a base de código do servidor, consulte o Guia de Desenvolvimento do Servidor.

Solução de problemas

A compilação falha por dependências ausentes

Instale os pacotes de desenvolvimento necessários para a sua plataforma. Verifique a mensagem de erro para identificar bibliotecas ausentes específicas.

O servidor não inicia

  • Verifique se o diretório de dados foi inicializado: ls ~/mysql-data/data/
  • Verifique se outra instância do MySQL/VillageSQL está usando a porta 3306
  • Consulte os logs de erro em ~/mysql-data/data/*.err

A instalação da extensão falha

  • Certifique-se de que a biblioteca da extensão (.so ou .dll) existe na saída da compilação
  • Verifique se o VillageSQL tem as permissões necessárias para carregar extensões
  • Verifique se o nome da extensão e o nome do arquivo .veb estão corretos

Próximos passos

Instalando Extensões

Aprenda a instalar, atualizar e gerenciar extensões do VillageSQL.

Criando Extensões em C++

Crie suas próprias extensões personalizadas para o VillageSQL.

Introdução

Guia de início rápido para o VillageSQL.