Esses comandos funcionaram!
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
Tentando se conectar ao meu servidor virtual MySQL (VirtualBox Fedora 25) no ambiente de trabalho mySQL.
Estou usando o usuário root, sim, eu sei que isso não é o mais seguro, mas para meu teste, tudo bem.
Existe uma tonelada de informações na web sobre isso, mas todas as coisas que eu li não funcionam para mim.
Durante a instalação do mySQL, eu permiti conexões remotas com o usuário root.
Portanto, concedo ao usuário root todos os privilégios usando:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_password';
Também descarreguei PRIVILEGES
depois
Eu adicionei uma linha ao meu
# vi /etc/my.cnf
bind-address=0.0.0.0
Eu também abri uma porta
shell> iptables -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 3306 -j ACCEPT
shell> iptables-save
Estou digitando o endereço IP inet que vejo em ifconfig no mysql workbench.
Estou fazendo algo errado? ou eu perdi um passo?
Eu recebo o erro "não é possível conectar-se ao banco de dados mysql (10060) após uma longa pausa.
O endereço IP no servidor virtual é o mesmo que o listado como 'desconhecido' na página de administração do roteador de dispositivos conectados.
O "não pode se conectar ao banco de dados mysql (10060)" indica que não é um problema de autenticação.
Experimente nc -v mysqlserver_ip_address 3306
. Deveria dizer 'Ncat: Connected to ...' Se isso acontecer, significa que você tem uma conexão TCP, então o problema está no mysql ou no ambiente de trabalho. Se ele disser outra coisa, o material da rede está quebrado ou o servidor não está escutando naquela porta.
Eu suspeito que você tenha um firewall perdendo seus pacotes. Uma longa pausa geralmente indica pacotes descartados, em vez de uma conexão rejeitada. Se você se conectar a uma porta não-firewall mas não aberta, o servidor enviará uma rejeição rapidamente. Na maior parte do tempo, se a conexão expirar, é porque algo está deixando cair os pacotes no chão, ao invés de rejeitá-los educadamente (a polidez é muito boba quando se lida com portais de pessoas que ficam na sua caixa). Isso é algo que os firewalls geralmente fazem. Então, é mais provável que seja uma coisa de firewall.
Você disse que correu iptables -A ....
, que colocaria sua nova linha no final das regras, o que significa que provavelmente não será usada porque provavelmente há uma regra padrão de DROP no final antes de você adicionar essa regra. Além disso, iptables-save deve apenas imprimir a configuração para stdout e não salvar a configuração do firewall no lugar certo.
Teste iptables -L
para ver se a ordenação está errada. Se estiver, você pode brincar com -I
. Uma maneira mais fácil de fazer isso é iptables-save > some_temp_file
, edite some_temp_file e execute iptables-restore < some_temp_file
.
Se você fizer o firewall funcionar do jeito que você deseja, faça iptables-save > /etc/wherever_it_goes
. No fedora / redhat / centos isso seria iptables save > /etc/sysconfig/iptables
.
Tags mysql virtualbox fedora