mysql não pode configurar o acesso remoto

1

Tentando configurar o mysql para acesso de qualquer host.

> show grants for 'root'@'%';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION

my.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 Nenhuma contém skip-networking

Em server.cnf

bind-address=0.0.0.0

Eu uso o CentOS 7, uname -a

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

O servidor MySQL é 10.1.21-MariaDB MariaDB Server

Ainda não é possível conectar-se a partir do host remoto: (

O problema definitivamente não está na rede ou no firewall.

As configurações acima estão corretas? Qual é o problema?

Depois de todo , o problema foi encontrado nas regras do iptables. Então a configuração do MySQL está OK!

    
por Alexey 27.01.2017 / 10:39

1 resposta

0

Se olharmos para a configuração que você tem (até onde você postou explicitamente e nos disse o que há nela), parece que deve funcionar. Pelo menos o KB MariaDB oficial indicaria isso.

Assim, você pode estar sentindo falta de algo dentro desses arquivos de configuração ou enfrentando um problema diferente. Embora você tenha dito que o problema não pode apostar na rede ou no firewall, seu erro mais recente ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113) indicaria que ainda pode haver um problema.

Você pode tentar se conectar ao seu IP local (127.0.0.1) em seu servidor usando o comando mysql. Olhando para a questão que eu 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 estava funcionando e aceitando conexões baseadas em IP.

Agora, o que pode estar acontecendo é que ele não se vincula aos endereços IP externos (talvez tente definir apenas o seu IP externo para bind-host ) ou 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á vinculando a você poderia executar (como root ou com sudo):

netstat -l -n -p

Isso deve te dar 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, nesse caso, o servidor MySQL está em execução apontando para o endereço do host local na porta 3306.

    
por 27.01.2017 / 12:08

Tags