Mysql Multiplas Instancias

Iniciado por zaptool, 08 de Abril de 2015, 10:51

tópico anterior - próximo tópico

zaptool

Aqui onde trabalho, surgiu a necessidade de criar um ambiente com dois banco de dados distintos, um para homologação e outro para os programadores desenvolverem seus trabalhos.

Atualmente o banco de dados vigente é o de Homologação.

Tentei por inúmeras vezes seguindo dicas encontradas pelo google, que consiste basicamente em duplicar alguns arquivos e pastas, escutando respectivamente nas portas 3306(default) e 3307 (adicional).

No entanto, em nenhumas das minhas tentativas obtive sucesso.

Meu servidor é Ubuntu 14.04 e o Mysql é 5.6


Minha ultima tentativa foi seguindo o artigo contido no link abaixo:
https://naveensnayak.wordpress.com/2013/11/10/mysql-multiple-instances-on-ubuntu/


Gostaria de saber se alguém aqui já desenvolveu este processo e pode me dar alguma dica !


vlw Galera !!

zekkerj

Olá zaptool,

Você não precisa ter duas instâncias de MySQL separadas para ter dois bancos. Vc pode perfeitamente ter dois bancos separados na mesma instância...

Outra alternativa que vc pode considerar é criar uma máquina virtual onde implantaria a base de dados de homologação.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zaptool

#2
Olá zekkerj !!

Entendi perfeitamente sua colocação, entretanto, a base de dados atuais possui cerca de 30 Schemas com cerca de 1200 tabelas.  

O Ambiente dos desenvolvedores precisam desses schemas basicamente duplicados, por isso existe a necessidade de separa-los em Bancos diferentes, entende ?

Encontrei um tutorial interessante
http://ithubinfo.blogspot.com.br/2014/03/easy-way-to-install-and-configure-mysql.html
, segui a risca mas ao subir o serviço mysql_multi start  somente a primeira instancia subiu....   :(

root@ubuntu:/etc/mysql# mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is not running



SEGUE TRECHO DO LOG EM /var/log/mysqld_multi.error

Starting MySQL servers

150408 07:34:38 mysqld_safe Logging to '/var/log/mysqlcrm.err'.
150408 07:34:38 mysqld_safe Logging to '/var/log/mysqlerp.err'.
150408 07:34:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql2
150408 07:34:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
150408 07:34:40 mysqld_safe mysqld from pid file /var/lib/mysql2/mysql.pid ended
mysqld_multi log file version 2.16; run: Wed Apr  8 07:34:41 2015

Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is not running

zekkerj

CitarO Ambiente dos desenvolvedores precisam desses schemas basicamente duplicados, por isso existe a necessidade de separa-los em Bancos diferentes, entende ?
Ainda acho que isso não é necessário. Até onde eu sei, você ter suas duas bases diferentes na mesma instância. Pode inclusive exportar a primeira como texto SQL, mudar o nome do banco, depois importar de volta.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zekkerj

Enquanto isso... os processos do mysql rodam com usuário próprio, certo? Nesse caso, certifique-se de que os diretórios novos (/var/lib/mysql2, /var/run/mysql2, /var/log/mysql2, etc) pertençam ao usuário e/ou ao grupo corretos, e não ao root.

Certifique-se também de ter reconfigurado e reiniciado o serviço AppArmor para liberar acesso de escrita aos novos diretórios.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D