Conteúdo deste artigo
Em segundo lugar, o motivo do erro
3.2 Problemas de permissão (você pode examinar o problema do firewall primeiro)
3.4 Permissões de acesso à porta do servidor
I. Introdução
Recentemente, comprei um novo servidor Aliyun Centos7.x. Após instalar o MySQL, posso acessar o MySQL no servidor através do Xshell, mas usando ferramentas de conexão remota como Navicat, recebo um erro 2003-Não é possível conectar ao servidor MySQL em ' '8.131 .154.146' (10060 "Erro desconhecido"), mas foi resolvido após uma tarde inteira. Após uma longa busca, ainda havia um problema no firewall. O objetivo deste blog é apontar uma mensagem clara para aqueles alunos que ainda estão confusos. Road, contornando alguns poços.
Em segundo lugar, o motivo do erro
Os motivos que resumi são os seguintes: (1) problemas de rede, (2) problemas de permissões, (3) problemas de firewall (iptables), (4) permissões de acesso à porta do servidor e (5) números de porta incorretos. Eu estava resolvendo um problema após o outro e, finalmente, não consegui conectar por causa da parede defensiva.
Três, a solução
3.1 Problemas de rede
Digite o nome de usuário e senha para se conectar ao banco de dados MySQL no servidor, conforme mostrado na figura a seguir: prova que não há problema com sua rede, a seguir exclua esta.
3.2 Problemas de permissão (você pode examinar o problema do firewall primeiro)
Faça login no MySQL e verifique se a conta permite conexões remotas. Se você não conseguir se conectar , tente os seguintes métodos.
// Faça login no MySQL, os comandos a seguir não diferenciam maiúsculas de minúsculas
Comando: mysql> mysql -u root -p
// Qualquer host remoto pode acessar o banco de dados
命令 : mysql> GRANT ALL PRIVILEGES ON *. * TO 'root' @ '%' WITH GRANT OPTION;
// É necessário inserir o comando secundário para tornar a modificação efetiva
Comando: mysql> FLUSH PRIVILEGES;
Depois que a autorização é executada (ou seja, após o segundo comando acima, ERROR 1133 (42000): Não é possível encontrar nenhuma linha correspondente na tabela do usuário) pode ser relatado, conforme mostrado na figura a seguir:
Depois de relatar esse erro, depois de executar o comando flush privileges , ele pode ser bem-sucedido (você tem sorte, pode prosseguir para a próxima etapa), ou pode não ser bem-sucedido, então você deve alterar o atributo de host do usuário usuário , e, em seguida, execute os privilégios de liberação. Este comando servirá.
3.3 O problema do firewall
Em muitos casos, após a instalação de um aplicativo de serviço web (como tomcat, apache, etc.) no sistema liunx, é necessário permitir que outros computadores acessem o aplicativo e o firewall do sistema linux (centos-7, redhat , etc.) está aberto apenas para o mundo externo por padrão. Porta, pode não abrir a porta 3306 do mysql.
As configurações de porta do host centOs são definidas no arquivo / etc / sysconfig / iptables. (Uso do editor vi: esc: modo de linha de comando / modo de inserção; i: inserir, wq: salvar e sair, q: sair, q !: sair sem salvar)
Coloque -A INPUT -m state --state NOVO -m tcp -p tcp --dport 3306 -j ACCEPT na porta 22. Não coloque-o aleatoriamente.Isso abrirá a porta para conexão remota mysql e então reinicie o iptables. O serviço está ok.
Nota especial: Muitos internautas adicionam essas duas regras à última linha da configuração do firewall, o que faz com que o firewall falhe ao iniciar. A correta deve ser adicionada à regra da porta 22 padrão.
# 80 porta padrão # 3306 porta padrão do MySQL # 8080 Porta padrão do Tomcat
# Configuração de firewall escrita por system-config-firewall
# A personalização manual deste arquivo não é recomendada.
* filtro
: ENTRADA ACEITAR [0: 0]
: AVANÇAR ACEITAR [0: 0]
: SAÍDA ACEITAR [0: 0]
-A ENTRADA -m estado –estado ESTABELECIDO, RELACIONADO -j ACEITAR
-A ENTRADA -p icmp -j ACEITAR
- A ENTRADA -i lo -j ACEITAR
-A ENTRADA -m estado –estado NOVO -m tcp -p tcp –dporta 22 -j ACEITAR
-A ENTRADA -m estado –estado NOVO -m tcp -p tcp –dporta 80 -j ACEITAR
-A ENTRADA -m estado –estado NOVO -m tcp -p tcp –dport 3306 -j ACEITAR
-A ENTRADA -j REJEITAR –rejeitar-com icmp-host-proibido
-A AVANÇAR -j REJEITAR –rejeitar-com icmp-host- proibido
COMMIT
/etc/init.d/iptables restart
#Finalmente reinicie o firewall para tornar a configuração efetiva. Se a reinicialização falhar ( Falha ao iniciar iptables.service: Unidade não encontrada. ), Você pode verificar meu outro blog: [ambiente Linux] centos7 Falha ao iniciar iptables.service: Unidade não firewall encontrado
3.4 permissões de acesso à porta do servidor
Primeiro, verifique se o console do servidor Ali ou Tencent ativou a permissão de acesso à porta 3306. Para saber onde procurar, por favor, use o Baidu. O meu é o seguinte:
O seguinte é depois de eu adicioná-lo manualmente, consulte a imagem abaixo:
3.5 Número de porta incorreto
Por esse motivo é muito mais fácil de resolver, pode ser resolvido verificando cuidadosamente o número da porta, por isso não vou repetir.
Considerações finais: Espero ajudar os alunos que estão pisando no fosso.
fim!