O banco de dados MySQL não pode ser conectado ao servidor MySQL no sistema Linux. Deixe-me resumir as armadilhas que encontrei. Espero que os parceiros possam prestar atenção a isso.
As máquinas virtuais e serviços que uso, a ferramenta de link do cliente de banco de dados
VM
janela de encaixe
MySQL57
navegador
Quais são os seguintes motivos comuns para os problemas acima?
1. O firewall no Linux não está fechado
Desligue o comando do firewall
systemctl stop firewall #Fecha temporariamente o firewall systemctl desabilita firewall #Fecha permanentemente o firewall
2. O número da porta no MySQL remoto é inconsistente com o número da porta no navicat
Faça login no MySQL com o seguinte comando
docker exec -it mysql /bin/bash entra no contêiner
Faça login no MySQL
mysql -u nome de usuário -p senha -P número da porta -h (endereço IP)
Após fazer login no banco de dados, visualize o número da porta do banco de dados atual
mostre variáveis globais como 'porta';
Se o número da porta estiver incorreto, altere o número da porta no navicat.
3. Pode ser que o firewall do servidor não esteja aberto, causando falha na conexão.
Envie uma regra para permitir a porta 3306
iptables -I INPUT -p top --aport 3306 -j ACEITAR
4. A porta não está sendo escutada
Visualize informações da porta de rede na máquina virtual:
#netstat-ntpl
Após verificar o status do firewall, constatou-se que todos os pacotes de dados na porta 3306 foram perdidos.
# iptables-vnl
Limpar regras de firewall
#iptables -F
5. As permissões de root no banco de dados MySQL são insuficientes. Pode ser que o serviço remoto localhost não consiga reconhecê-lo.
Método 1: autorização direta (recomendado)
Faça login no mysql
Execute o seguinte comando
Definir comando de permissão
mysql> concede todos os privilégios em *.* para 'root'@'%' identificado por '123456';
从任何主机上使用root用户,密码:你的password(你的root密码)连接到mysql服务器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION
Método 2: Faça login localmente no mysql, altere o item "host" na tabela "usuário" no banco de dados "mysql" e altere "localhost" para "%"
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
6. Use docker ps -a para verificar se o processo no MySQL está funcionando normalmente.
Eu reiniciei aqui. Se você não reiniciou, digite o seguinte comando...
docker start mysql或ID号 #开启mysql服务
docker start mysql或ID号 #关闭mysql服务
docker restart mysql或ID号 #重启mysql服务
Use docker ps -a novamente para verificar se o mysql foi iniciado
7. Verifique se a máquina virtual está conectada à Internet normalmente no Centro de Compartilhamento de Rede do Windows. Se não estiver conectada à rede, inicie a rede.
1) O Windows 11 abre o adaptador de rede da máquina virtual
Ligue a rede de máquinas virtuais acima
2) Verifique também o status da rede na máquina virtual
Até aqui
O banco de dados mysql pode ser conectado com sucesso. O acima foi verificado pessoalmente. Espero que possa inspirar a todos. Mesmo que os problemas relevantes não sejam resolvidos, também servirá de inspiração a todos para que vocês não se percam.