Às vezes, você pode precisar executar várias instâncias do MySQL em um único servidor. Por exemplo, você pode precisar testar diferentes instâncias do MySQL para preparação, teste e produção. Neste artigo, veremos como executar várias instâncias do MySQL na mesma máquina, mas em portas diferentes, com arquivos de log e parâmetros de configuração diferentes.
Como executar várias instâncias do MySQL na mesma máquina
Aqui estão as etapas para executar várias instâncias do MySQL na mesma máquina.
1. Abra o arquivo de configuração do MySQL
Normalmente, você encontrará o arquivo de configuração do MySQL em /etc/mysql/my.cnf . Abra o terminal e execute o seguinte comando para abrir o arquivo de configuração do MySQL.
$ sudo vi /etc/mysql/my.cnf
2. Configurar várias instâncias do MySQL
Você encontrará a configuração padrão do MySQL algo semelhante ao que é mostrado abaixo.
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 datadir = /data/mysql/mysql
Copie e cole o bloco de código acima abaixo dele no mesmo arquivo. Substituir [mysqld] com [mysqld1] e altere o valor da porta para 3307. Isso tornará a nova instância mysqld1 executado em uma porta diferente 3307 com um nome de processo diferente mysqld1. Da mesma forma, altere os nomes dos arquivos das variáveis pid-file, socket e datadir conforme mostrado abaixo.
Certifique-se de copiar a pasta datadir para cada instância abaixo. Certifique-se também de que o usuário mysql usuário tem permissões de acesso a ele. Cada instância precisa de seu próprio diretório de dados.
[mysqld1] user = mysql pid-file = /var/run/mysqld/mysqld1.pid socket = /var/run/mysqld/mysqld1.sock port = 3307 datadir = /data/mysql/mysql1
Agora mysqld1 será executado como uma instância separada do mysqld
Da mesma forma, você pode criar mais instâncias conforme mostrado abaixo
[mysqld2] user = mysql pid-file = /var/run/mysqld/mysqld2.pid socket = /var/run/mysqld/mysqld2.sock port = 3308 datadir = /data/mysql/mysql2 .... [mysqldN] user = mysql pid-file = /var/run/mysqld/mysqldN.pid socket = /var/run/mysqld/mysqldN.sock port = N datadir = /data/mysql/mysqlN
Certifique-se de fornecer um arquivo pid , arquivo de soquete e diretório de dados diferentes para cada instância e certifique-se de que o usuário mysql tem permissões de diretório necessárias porque o mysql o usuário deve ser capaz de criar os arquivos e diretórios necessários.
3. Gerencie várias instâncias
Você pode iniciar cada instância separadamente usando mysqld comando abaixo. Substitua mysqlN com sua escolha de instância (por exemplo, mysql1, mysql2, etc)
mysqld --initialize --user=mysql --datadir=/home/mysql/mysqlN
Se, por algum motivo, a configuração acima não funcionar para você, copie o arquivo my.cnf para /etc/my.cnf local e tente novamente. Às vezes, o mysql não registra várias instâncias configuradas em /etc/mysql/my.cnf
$ sudo cp /etc/mysql/my.cnf /etc/my.cnf
Se você deseja fazer login em qualquer instância específica (por exemplo, mysqld1) a partir da linha de comando, você precisa especificar o local do arquivo de soquete com a opção -S. Caso contrário, você será conectado à instância padrão do MySQL.
mysql -u root -p -S /var/run/mysqld/mysqld1.sock
Espero que este artigo o ajude a configurar e gerenciar várias instâncias do MySQL no mesmo servidor.
Precisa de uma ferramenta de relatório para MySQL? O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!