Estou tentando instalar o mysql e o mariadb no mesmo servidor de uma instalação paralela, cada serviço em uma porta diferente.
Eu instalei o servidor mysql usando o apt-get em uma distro baseada no debian e depois o mariadb seguindo este tutorial usando binários pré-compilados do mariadb.
À primeira vista, tudo parece funcionar bem porque:
A) Eu vejo os dois serviços ouvindo nas portas 3306 e 3307 depois de fazer "netstat -latun":
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
B) De um host remoto eu posso conectar-me aos dois serviços via phpMyAdmin e via linha de comando e executar consultas:
MySQL:
mysql -u root -pmypassword -h x.x.x.x --port 3306
MariaDB:
mysql -u root -pmypassword -h x.x.x.x --port 3307
C) No servidor eu posso conectar com sucesso a ambos os consoles e executar consultas usando:
MySQL:
mysql -u root -pmypassword --port 3306
MariaDB:
mysql -u root -pmypassword --socket=/opt/mariadb-data/mariadb.sock
O que não está funcionando
Não é possível conectar assim:
/opt/mariadb/bin/mysql -u root -pmypassword --port 3307
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 "No such file or directory")
Conecta-se à porta 3306 em vez disso:
/usr/bin/mysql -u root -pmypassword --port 3307
Eu acredito que, como conseqüência dos erros anteriores, a instalação do Joomla só funciona quando o mysql está em execução na porta 3306 ou 3307.
Quando apenas o MariaDB está funcionando em qualquer porta, o Joomla exibe:
Database connection error (2): Could not connect to MySQL.Database connection error (2): Could not connect to MySQL.
e linha de comando:
# /usr/bin/mysql -u root -pmypassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
# /opt/mariadb/bin/mysql -u root -pmypassword
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2 "No such file or directory")
Quando o MariaDB está rodando, eu ainda posso conectar via phpMyAdmin e linha de comando de um host remoto ou via linha de comando no servidor usando a opção --socket.
Eu tenho que notar que durante testes anteriores, a partir de uma instalação do mysql eu instalei o servidor mariadb via apt-get e ele substituiu a instalação do mysql e tudo funcionou bem via linha de comando ou via qualquer framework php cms .
Eu acho que ainda existem referências ao mysql em algum lugar, em particular ao seu arquivo de soquete porque usar a opção --socket através da linha de comando faz com que ele funcione sempre
Neste ponto, acredito que o apache e o php entram em cena, mas ainda não sabem onde cavar.
Linha de fundo:
- A partir de um host remoto, o phpMyAdmin e a linha de comando funcionam com todos os serviços em qualquer porta.
- No servidor Apache e php não conectam ao MariaDB em qualquer porta
- Conectar-se ao MariaDB via linha de comando no servidor só funciona se a opção --socket for fornecida.
Enquanto pesquiso sobre este assunto, há alguma sugestão?
Muito obrigado.