Preciso configurar várias instâncias do MySQL no mesmo host para um de nossos clientes. Tanto quanto eu vejo, eu poderia ir com:
mysqld_multi
- Caixa de areia do MySQL
Esta deve ser uma solução de longo prazo para um ambiente de produção de classe empresarial.
Precisamos migrar um ambiente já existente que atualmente usa o RedHat Cluster com nós ativos/passivos para uma nova VM sem o software de clustering (serão usadas soluções VMware HA, será diferente, eu sei).
Existem 3 recursos de instância/cluster MySQL separados. Desconheço a motivação inicial desta separação, mas suponho que o cliente queira poder parar/iniciar (patch, upgrade...) os diferentes recursos de forma autónoma.
Quaisquer comentários e sugestões - prós, contras e experiência do mundo real são muito bem-vindos!
Para responder à sua pergunta imediata sobre como configurá-lo, eu e Randy Melder abordamos esta questão em 31 de maio de 2011 .
DTest e Laurynas Biveinis responderam a isso mais recentemente (20 de setembro de 2011) .
Alguns juram por seu uso nos dias de hoje.
Anos atrás, o mysql costumava fornecer um script chamado
safe_mysqld
que tornava simples ter várias instâncias do mysql. Tudo o que você fez foi criar um my.cnf para a instância what em qualquer porta que você quisesse. Então ligou:MySQL parou de distribuir safe_mysqld em favor de mysqld_multi.
No entanto, aprendi como usar mysqld_safe. Acredite ou não, por entender mysqld_safe, eu realmente escrevi meu próprio mecanismo de múltiplas instâncias mysql em fevereiro de 2011. Ele está em uso de produção agora com muitos dos clientes do meu empregador. Aqui está como eu fiz isso:
Primeiro, faça este mecanismo de serviço chamado /etc/init.d/mysqlservice
Em seguida, crie um arquivo de instância mysql para uma porta específica.
Por exemplo, aqui está o serviço mysql3307
Certifique-se de que o arquivo de instância mysql tenha o número da porta definido em PORT_NUMBER entre 3307 e 3399.
Como o arquivo de instância mysql chama mysqlservice, observe que mysqlservice verificará o arquivo de configuração para a porta específica.
No caso de mysql3307, mysqlservice procurará por /etc/my3307.cnf.
Certifique-se de ter o seguinte explicitamente definido em /etc/my3307.cnf
O datadir e o soquete podem estar em locais de sua escolha.
Para criar mysql3308 e outros serviços, seguindo o mesmo paradigma, mas use exatamente o número da porta definido por toda parte.
De uma chance !!!
Este link pode ajudar: