Você conhece alguma 'maneira Debian' de configurar várias instâncias do MySQL em um único servidor? O servidor receberia dados replicados de vários bancos de dados remotos.
Eu poderia usar scripts como mysqlsandbox, mas prefiro manter os pacotes Debian e gostaria de poder atualizar a instalação sem muitas complicações no futuro. Outra solução é o mysqlmanager - ele funciona com o MySQL 5.1, mas está obsoleto e não é mais lançado com o 5.5.
Então, qual é a 'melhor prática' de executar várias instâncias do MySQL em um único servidor Debian?
Respostas:
Acredito que seja tão simples quanto executar
mysqld_multi
e configurar seu my.cnf corretamente.mysqld_multi
faz parte da distribuição do mysql - não é um pacote.Há um patch para tornar
/usr/share/mysql/mysqld_multi.server
apropriado o uso/etc/init.d
e outro patch paramysqld_multi
usar os arquivos/etc/mysql/conf.d
.Você pode inicializar os diretórios de dados do MySQL para novas instâncias com o
mysql_install_db
comando desta forma:Não se esqueça de alterar a senha raiz da instância recém-criada:
fonte
No Debian 8, você pode usar o mecanismo Systemd: não é mais necessário
mysqld_multi
.NOTA: Eu uso a versão MariaDB! Não tenho certeza se ele funciona com o pacote MySQL 'clássico'.
De
/lib/systemd/system/[email protected]
:Portanto, crie um arquivo
/etc/mysql/conf.d/myserver2.cnf
e especifique nele novos arquivos pid / socket / datadir e porta de rede:EDIT: tenha cuidado para que a primeira instância do MySQL não leia este arquivo de configuração,
!includedir /etc/mysql/conf.d/*
na parte inferior de/etc/mysql/my.cnf
. Se for esse o caso, substitua o!includedir
por um!include
de cada arquivo de configuração, exceto o myserver2.cnf:O documento oficial do MySQL indica que você deve nomear
[mysqld]
como[mysqld@server2]
( https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html#systemd-multiple-mysql-instances ), mas isso não funciona com o MariaDB . Então apenas deixe[mysqld]
.Antes de iniciar o novo daemon, não se esqueça de criar o datadir e os arquivos necessários:
Atualize também a configuração do daemon systemd:
E se você deseja iniciar este daemon na inicialização:
Para iniciá-lo:
fonte
/etc/my.cnf
, é por isso.!includedir /etc/mysql/conf.d/*
. Para maior segurança, incluí cadaconf.d
arquivo manualmente