Tentando configurar o mysql para acesso de qualquer host.
> mostrar concessões para 'root'@'%';
CONCEDER TODOS OS PRIVILÉGIOS EM *.* PARA 'root'@'%' COM OPÇÃO GRANT
meu.cnf
[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
Arquivos em /etc/my.cnf.d: client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf Nenhum contémskip-networking
Emservidor.cnf
bind-address=0.0.0.0
Eu uso CentOS 7, uname -a
dá
Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
Servidor MySQL é10.1.21-MariaDB MariaDB Server
Ainda não consigo conectar do host remoto :(
O problema definitivamente não está na rede ou no firewall.
As configurações acima estão corretas?O que está errado?
Afinalo problema foi encontradonas regras do iptables. Então a configuração do MySQL está OK!
Responder1
Se olharmos para a configuração que você tem (desde que você a postou explicitamente e nos disse o que contém), parece que deve funcionar. Pelo menos ooficial MariaDB KBindicaria isso.
Como tal, você pode estar faltando alguma coisa nesses arquivos de configuração ou estar enfrentando um problema diferente. Embora você tenha dito que o problema não pode estar relacionado à rede ou ao firewall, seu erro mais recente ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)
indicaria que ainda pode ser um problema.
Você pode tentar se conectar ao seu IP local (127.0.0.1) no seu servidor usando o comando mysql. Olhando para a pergunta que vinculei, você usaria:
mysql -h 127.0.0.1 -u root -p
Se você conseguir estabelecer uma conexão usando esse comando, saberá que seu MariaDB está funcionando e aceitando conexões baseadas em IP.
Agora, o que pode estar acontecendo é que ele não se liga aos endereços IP externos (talvez tente definir apenas o seu IP externo bind-host
) ou o seu firewall (cliente ou servidor) ou outro componente de rede pode estar interferindo e bloqueando a conexão.
Para verificar o que o servidor está vinculado, você pode executar (como root ou com sudo):
netstat -l -n -p
Isso deve resultar em uma linha como a seguinte:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1234/mysqld
...
Como você pode ver, neste caso, o servidor MySQL está executando o ponto para o endereço localhost na porta 3306.