Neste artigo, vou mostrar como executar várias instâncias de servidor de banco de dados MariaDB no mesmo computador/servidor executando o Ubuntu 20.04 LTS Operating System. Então vamos começar.
Instalando o servidor de banco de dados MARIADB:
Primeiro, atualize o cache do repositório de pacotes apt com o seguinte comando:
$ sudo apt update
Você pode instalar o servidor de banco de dados MARIADB com o seguinte comando:
$ sudo apt install mariadb-client mariadb-server
Para confirmar a instalação, pressione Y e depois pressione .
Mariadb está sendo instalado. Pode demorar um pouco para completar.
Neste ponto, o mariadb deve ser instalado.
Interrompendo o serviço de banco de dados Mariadb:
Você pode verificar se o mysql O serviço de banco de dados está sendo executado com o seguinte comando:
$ sudo systemctl status mysql
O mysql O serviço de banco de dados deve estar em execução por padrão, como você pode ver na captura de tela abaixo.
Como queremos executar várias instâncias do software MariaDB Database Server, não precisamos do padrão mysql Serviço Systemd para executar. Vamos executar as instâncias de banco de dados MariaDB manualmente.
Então, pare o mysql Serviço de banco de dados com o seguinte comando:
$ sudo systemctl pare mysql
O mysql O serviço de banco de dados deve ser interrompido.
$ sudo systemctl status mysql
Também queremos remover o mysql Serviço de banco de dados da startup do sistema do Ubuntu 20.04 LTS. Para que não comece automaticamente na inicialização.
Para remover o mysql Serviço da inicialização do sistema, execute o seguinte comando:
$ sudo systemctl desative mysql
Configurando o MARIADB para executar várias instâncias de banco de dados:
Todos os arquivos de configuração do banco de dados Mariadb estão no /etc/mysql/mariadb.conf.d/ diretório.
Para facilitar o trabalho com os arquivos de configuração do Mariadb, navegue para o /etc/mysql/mariadb.conf.d/ diretório da seguinte maneira:
$ cd/etc/mysql/mariadb.conf.d/
Não precisamos do arquivo de configuração do Mariadb padrão 50 server.CNF arquivo mais.
Para garantir que este arquivo de configuração não seja lido pelo servidor mariadb, renomeie o principal arquivo de configuração do mariadb 50 server.CNF para 50 server.CNF.cópia de segurança com o seguinte comando:
$ sudo mv -v 50 server.CNF 50-server.CNF.cópia de segurança
Crie um novo arquivo de configuração do Mariadb 50-server-multi.CNF com o seguinte comando:
$ sudo nano 50-server-multi.CNF
Digite as seguintes linhas no 50-server-multi.CNF arquivo.
[mysqld_multi]
mysqld =/usr/bin/mysqld_safe
mysqladmin =/usr/bin/mysqladmin
log =/var/log/mysql/mysqld_multi.registro
usuário = multi_admin
senha = segredo
Depois de terminar, pressione + X seguido pela Y e Para salvar o 50-server-multi.CNF arquivo.
Aqui, os logs do servidor mariadb serão armazenados no arquivo /var/log/mysql/mysqld_multi.registro.
O mysqld_multi Nome de usuário do Admin será Multi_Admin e a senha será segredo. Isso é necessário para permitir o DESLIGAR Permissão para as instâncias do servidor de banco de dados MariaDB.
Neste artigo, executarei três instâncias de banco de dados MariaDB para a demonstração. Cada uma das instâncias do banco de dados MariaDB terá seu próprio arquivo de configuração.
Crie um arquivo de configuração 50-server1.CNF Para o primeiro Instace do Mariadb Database Server da seguinte forma:
$ sudo nano 50-server1.CNF
Digite as seguintes linhas no 50-server1.CNF arquivo.
[mysqld1]
usuário = mysql
pid-file =/run/mysqld/mysqld1.PID
soquete =/run/mysqld/mysqld1.meia
baseado = /usr
datadir =/var/lib/mysql1
tmpdir = /tmp
LC-Messages-Dir =/usr/share/mysql
Address de ligação = 127.0.0.1
query_cache_size = 16m
log_error =/var/log/mysql/mysqld1_error.registro
expire_logs_days = 10
SERVER DE CARACTERÍSTICO = UTF8MB4
COLATION-SERVER = UTF8MB4_GENERAL_CI
PORT = 20101
Depois de terminar, pressione + X seguido pela Y e Para salvar o 50-server1.CNF arquivo.
Aqui, mySqld1 é o nome da instância. Para a segunda instância, será mysqld2 e assim por diante.
O caminho para o arquivo PID será /run/mysqld/mysqld1.PID e o arquivo de soquete será /run/mysqld/mysqld1.meia para o mySqld1 instância. Estes serão diferentes para cada uma das instâncias de mariadb.
O diretório de dados para o mySqld1 instância será /var/lib/mysql1. Será diferente para cada uma das instâncias de mariadb.
O caminho do arquivo de log de erros para o mySqld1 instância será /var/log/mysql/mysqld1_error.registro. Será diferente para cada uma das instâncias de mariadb.
O porto do mySqld1 instância será 20101. Será diferente para cada uma das instâncias de mariadb.
O arquivo de configuração para a segunda e a terceira instâncias de mariadb será semelhante à primeira instância de mariadb. Então, podemos simplesmente copiar o primeiro arquivo de configuração da MariaDB 50-server1.CNF e fazer pequenos ajustes.
Copie o 50-server1.CNF Para criar um novo arquivo de configuração 50-server2.CNF Para a segunda instância do mariadb da seguinte forma:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
Da mesma maneira, copie o 50-server1.CNF Para criar um novo arquivo de configuração 50-server3.CNF Para a terceira instância do mariadb da seguinte forma:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
Para fazer ajustes no segundo arquivo de configuração da instância do servidor mariadb 50-server2.CNF, Abra com o Nano Editor de texto da seguinte forma:
$ sudo nano 50-server2.CNF
Ajuste as seções marcadas do arquivo de configuração 50-server2.CNF.
Depois de terminar, pressione + X seguido pela Y e Para salvar o 50-server2.CNF arquivo.
Para fazer ajustes no terceiro arquivo de configuração da instância do servidor mariadb 50-server3.CNF, Abra com o Nano Editor de texto da seguinte forma:
$ sudo nano 50-server3.CNF
Ajuste as seções marcadas do arquivo de configuração 50-server3.CNF.
Depois de terminar, pressione + X seguido pela Y e Para salvar o 50-server3.CNF arquivo.
Criando os arquivos de log mariadb:
Crie um arquivo de log mysqld_multi.registro no /var/log/mysql/ diretório para o mysqld_multi programa da seguinte maneira:
$ sudo toque/var/log/mysql/mysqld_multi.registro
Defina o proprietário (para mysql) e grupo (para Adm) do mysqld_multi.registro Arquivo com o seguinte comando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld_multi.registro
Defina as permissões de arquivo corretas para o mysqld_multi.registro Arquivo com o seguinte comando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld_multi.registro
Criar arquivos de log de erros para o mySqld1, mysqld2, e mysqld3 Instâncias de mariadb com o seguinte comando:
$ sudo toque/var/log/mysql/mysqld 1… 3 _error.registro
Altere o proprietário (para mysql) e grupo (para Adm) dos arquivos de log de erros do mySqld1, mysqld2, e mysqld3 Instâncias de mariadb com o seguinte comando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld 1… 3 _error.registro
Defina as permissões de arquivo corretas para os arquivos de log de erro do mySqld1, mysqld2, e mysqld3 Instâncias de mariadb com o seguinte comando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld 1… 3 _error.registro
Criando e preparando os diretórios de dados do Mariadb:
Criar diretórios de dados mariadb para o mySqld1, mysqld2, e a mysqld3 Instâncias de mariadb com o seguinte comando:
$ sudo mkdir -v/var/lib/mysql 1… 3
Altere o proprietário e o grupo de cada um dos diretórios de dados para mysql com o seguinte comando:
$ sudo chown -v mysql: mysql/var/lib/mysql 1… 3
Defina as permissões corretas para cada um dos diretórios de dados com o seguinte comando:
$ sudo chmod -v u = rwx, g = rx, o = rx/var/lib/mysql 1… 3
Uma vez que o proprietário, o grupo e as permissões de arquivos estiverem definidas corretamente, todos os diretórios de dados mariadb devem procurar como mostrado na captura de tela abaixo:
$ ls -lhd/var/lib/mysql*
Agora, você tem que preparar os diretórios de dados mariadb. Para fazer isso, você pode usar o mysql_install_db comando.
Para preparar o diretório de dados MariaDB /var/lib/mysql1 para o mySqld1 Instância, execute o seguinte comando:
$ sudo mysql_install_db --User = mysql ---datadir =/var/lib/mysql1
O diretório de dados /var/lib/mysql1 deve estar pronto para o mySqld1 instância.
Da mesma maneira, prepare o diretório de dados MariaDB /var/lib/mysql2 para o mysqld2 instância com o seguinte comando:
$ sudo mysql_install_db --user = mysql ---datadir =/var/lib/mysql2
O diretório de dados /var/lib/mysql2 deve estar pronto para o mysqld2 instância.
Além disso, prepare o diretório de dados MariaDB /var/lib/mysql3 para o mysqld3 instância com o seguinte comando:
$ sudo mysql_install_db --User = mysql ---datadir =/var/lib/mysql3
O diretório de dados /var/lib/mysql3 deve estar pronto para o mysqld3 instância.
Executando várias instâncias de mariadb:
Agora você pode executar várias instâncias de mariadb usando o mysqld_multi programa.
Você pode verificar se as instâncias do mariadb mySqld1, mysqld2, e mysqld3 está funcionando com o seguinte comando:
$ sudo mysqld_multi relatório
Como você pode ver, as instâncias de mariadb não estão funcionando no momento.
Você pode iniciar todas as instâncias do servidor de banco de dados MariaDB com o seguinte comando:
$ sudo mysqld_multi start
Como você pode ver, as instâncias do servidor de banco de dados Mariadb mySqld1, mysqld2, e mysqld3 Estão correndo.
$ sudo mysqld_multi relatório
Como você pode ver, as portas de banco de dados MariaDB 20101 (para mySqld1), 20102 (para mysqld2), e 20103 (para mysqld3) Estão escutando. Então, as instâncias do banco de dados MariaDB estão funcionando perfeitamente.
Concedendo permissão de desligamento para as instâncias de banco de dados MariaDB:
mysqld_multi precisa ter o DESLIGAR Permissão para poder interromper as instâncias do banco de dados MariaDB. Para conceder a permissão de desligamento para mysqld_multi, Você precisa fazer login em cada uma das instâncias de banco de dados Mariadb, criar um Multi_Admin Usuário (com a senha de login segredo) e conceder o DESLIGAR permissão para o Multi_Admin do utilizador.
Primeiro, faça o login na primeira instância do servidor de banco de dados MARIADB mySqld1 com o seguinte comando:
$ sudo mysql -s/run/mysqld/mysqld1.Raiz de meia -u
Você deveria estar conectado.
Para criar um novo usuário Multi_Admin com a senha segredo e conceder o DESLIGAR permissão para o Multi_Admin Usuário, execute a seguinte instrução SQL:
Mariadb [(nenhum)]> Grant Shalldown On *.* Para 'multi_admin'@'localhost' identificado por 'secret';
Saia do console do banco de dados MariaDB com o seguinte comando:
Mariadb [(nenhum)]> saída
Da mesma maneira, faça o login na Segunda instância do servidor de banco de dados Mariadb mysqld2 com o seguinte comando:
$ sudo mysql -s/run/mysqld/mysqld2.Raiz de meia -u
Crie um novo usuário Multi_Admin com a senha segredo e conceder o DESLIGAR permissão para o Multi_Admin Usuário com a seguinte instrução SQL:
Mariadb [(nenhum)]> Grant Shalldown On *.* Para 'multi_admin'@'localhost' identificado por 'secret';
Saia do console do banco de dados MariaDB com o seguinte comando:
Mariadb [(nenhum)]> saída
Além disso, faça o login na terceira instância do servidor de banco de dados MariaDB mysqld3 com o seguinte comando:
$ sudo mysql -s/run/mysqld/mysqld3.Raiz de meia -u
Crie um novo usuário Multi_Admin com a senha segredo e conceder o DESLIGAR permissão para o Multi_Admin Usuário com a seguinte instrução SQL:
Mariadb [(nenhum)]> Grant Shalldown On *.* Para 'multi_admin'@'localhost' identificado por 'secret';
Saia do console do banco de dados MariaDB com o seguinte comando:
Mariadb [(nenhum)]> saída
Vamos ver se mysqld_multi pode interromper as instâncias do servidor de banco de dados Mariadb.
Como você pode ver, as instâncias do servidor de banco de dados Mariadb estão em execução.
$ sudo mysqld_multi relatório
Para interromper as instâncias do MariaDB Database Server, execute o seguinte comando:
$ sudo mysqld_multi pare
Como você pode ver, as instâncias do servidor de banco de dados Mariadb não estão mais funcionando.
$ sudo mysqld_multi relatório
As portas do servidor de banco de dados MariaDB 20101 (para mySqld1), 20102 (para mysqld2), e 20103 (para mysqld3) não estão ouvindo também.
Iniciando instâncias do servidor de banco de dados MariaDB na inicialização do sistema:
Você não deseja iniciar as instâncias do servidor de banco de dados MariaDB manualmente sempre que as botas do seu servidor. Para iniciar automaticamente as instâncias do servidor de banco de dados MariaDB, você pode adicionar o comando inicial como um cronjob.
Para adicionar qualquer Cronjob, você deve modificar o arquivo Crontab.
Para modificar o arquivo Crontab, execute o seguinte comando:
$ sudo crontab -e
Imprensa 1 (para selecionar o editor de texto Nano) e depois pressionar .
O arquivo crontab deve ser aberto. Adicione a linha marcada na captura de tela abaixo.
Depois de terminar, pressione + X seguido pela Y e Para salvar o arquivo Crontab.
Para que as alterações entrem em vigor, reinicie seu computador com o seguinte comando:
$ sudo reiniciar
Uma vez que o seu computador botas, você verá que todas as instâncias de banco de dados MariaDB estão em execução.
$ sudo mysqld_multi relatório
Como você pode ver, as portas de banco de dados MariaDB 20101 (para mySqld1), 20102 (para mysqld2), e 20103 (para mysqld3) Estão escutando. Então, as instâncias do banco de dados MariaDB estão funcionando perfeitamente.
Conclusão:
Neste artigo, mostrei como executar várias instâncias do servidor de banco de dados MariaDB no mesmo computador/servidor usando o mysqld_multi programa. Este artigo deve ajudá -lo a configurar várias instâncias do servidor de banco de dados Mariadb no mesmo Ubuntu 20.04 LTS Computer/Server.