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. Estes passos compilam o VillageSQL sobre o MySQL 8.4 upstream. O VillageSQL também é compilado sobre o Percona Server como base de código alternativa — consulte a página Compilação Percona.Pré-requisitos
Antes de começar, certifique-se de ter os seguintes itens instalados:- Git - Para clonar o repositório
- Uma plataforma compatível - Debian ou Ubuntu Linux, ou macOS com Homebrew
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:-b publish/mysql-8.4_0.0.7.
O repositório ocupa vários GB por conta da base de código do MySQL.
Passo 2: Instalar as dependências de compilação
Execute o script de configuração a partir do repositório que você acabou de clonar. O script detecta o seu sistema operacional e instala os pacotes necessários para a compilação:apt-get e solicita sudo. No macOS, ele usa o
Homebrew. A CI do VillageSQL instala as suas dependências de compilação com o
mesmo script, portanto a lista de pacotes permanece atualizada em relação à
compilação.
O script é compatível com Debian ou Ubuntu Linux e com macOS. Em outra
distribuição Linux, leia
villagesql/bld_tools/setup_linux_build_env.sh e
instale os pacotes equivalentes com o seu próprio gerenciador de pacotes.Passo 3: Configurar com o CMake
Crie um diretório de compilação fora do repositório e configure o projeto:openssl sem versão do Homebrew agora é o OpenSSL 4, e o servidor não compila com ele:
Os caminhos usam
$HOME em vez de ~ em todo o documento, nas duas
plataformas. O shell só expande ~ no início de uma palavra, portanto
--datadir=~/mysql-data/data chega ao mysqld como um diretório literalmente
chamado ~ e o servidor é abortado. As aspas em "$HOME/..." também mantêm o
caminho íntegro caso o nome do seu diretório pessoal contenha um espaço.
Substitua o caminho do repositório pela localização real do seu clone, se for
diferente.Opções do CMake explicadas
"$HOME/villagesql-server"- Caminho para o repositório clonado do VillageSQL-DWITH_DEBUG=1- Compila com o mecanismo DBUG e as asserções ativados, sem otimização (recomendado para desenvolvimento)-DCMAKE_INSTALL_PREFIX="$HOME/mysql"- Define o diretório de instalação-DWITH_SSL="$(brew --prefix openssl@3)"- Aponta o cmake para o OpenSSL 3. O Passo 2 instala oopenssl@3. Se você pulou o Passo 2, executebrew install openssl@3antes, porquebrew --prefix openssl@3imprime um caminho mesmo quando o pacote não está instalado, e o cmake então para comWrong option or path for WITH_SSL=.
Opções adicionais do CMake
Compilação de produção:Se precisar reconfigurar, limpe primeiro o cache do CMake (execute a partir do diretório de compilação):
Passo 4: Compilar o código
Compile o VillageSQL usando make com compilação paralela. A partir do diretório de compilação: Compilar tudo (recomendado):mysql usado no
Passo 7, o SDK de Extensões e os arquivos
.veb das extensões de exemplo.
Compilar somente o servidor e o cliente:
.veb
de exemplo, portanto INSTALL EXTENSION vsql_complex não encontra nenhum
pacote para instalar e uma compilação de extensão que passa
-DVillageSQL_BUILD_DIR não encontra o SDK.
Quando concluir, verifique se os binários do servidor e do cliente foram compilados:
Passo 5: Inicializar o banco de dados
Antes de iniciar o servidor pela primeira vez, inicialize o diretório de dados: Produção (com senha gerada - recomendado):--user=root:
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>Passo 6: Iniciar o servidor
Inicie o servidor VillageSQL:Passo 7: Conectar com o cliente MySQL
Abra um novo terminal e conecte-se ao servidor usando o cliente MySQL: Se estiver usando —initialize-insecure (sem senha):Alterar a senha do root
Se você usou--initialize, altere a senha temporária:
Verificar a instalação
Verifique se você está executando o VillageSQL:Passo 8: Configurar usuários e banco de dados
Criar um usuário de desenvolvimento
Para o desenvolvimento diário, crie um usuário que não seja root:Criar um banco de dados
Passo 9: Executar os testes
Verifique a compilação com a suíte de testes do VillageSQL, a partir do diretório de compilação:--nounit-tests pula os testes de unidade do MySQL upstream, que incluem falhas conhecidas. Execute os testes de unidade do VillageSQL separadamente:
Compilar pacotes nativos (RPM/DEB)
villagesql/bld_tools/build_deb.sh e build_rpm.sh compilam um pacote Debian ou RPM
diretamente da árvore de código-fonte, para instalar com o seu gerenciador de pacotes
em vez de seguir os passos manuais acima. Nenhum dos dois precisa de uma configuração
prévia do CMake — ambos derivam a versão do pacote dos arquivos VSQL_VERSION e
MYSQL_VERSION na raiz do repositório. Com os Passos 1-2 já concluídos,
instale as ferramentas de empacotamento e as dependências de compilação que o Passo 2 deixa de fora — no
Debian/Ubuntu, dpkg-dev, debhelper, libcurl4-openssl-dev, libsystemd-dev
e systemd-dev; no Enterprise Linux, rpm-build — e então execute um deles a partir da
raiz do repositório:
Solução de problemas
A compilação falha por dependências ausentes
Execute o script de configuração novamente. O Passo 3 deixa você no diretório de compilação, portanto informe o caminho absoluto do script:O servidor não inicia
- Verifique se o diretório de dados foi inicializado:
ls "$HOME/mysql-data/data/" - Verifique se outra instância do MySQL/VillageSQL está usando a porta 3306
- Leia as mensagens que o
mysqldexibe no seu terminal, ou inicie-o com--log-error="$HOME/mysql-data/error.log"e leia esse arquivo
A instalação da extensão falha
- Certifique-se de que o arquivo
.vebda extensão existe no diretórioveb_dir($HOME/build/villagesql/lib/vebpara uma compilação a partir do código-fonte) e de que sua biblioteca se chama<extension_name>.sono Linux e no macOS - 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
Usando Extensões
Aprenda a instalar, atualizar e gerenciar extensões do VillageSQL.
Criando Extensões
Crie suas próprias extensões personalizadas para o VillageSQL.
Introdução
Guia de início rápido para o VillageSQL.

