MySQL限制了某一特定的IP连接?

使用过程中, 发现别的地址可以连接你的MySQL, 但是自己的IP怎么都连接不上是该怎么解决?

9}NG[MCH{2VS_K}VKEIY_6Q

 

1. 确认 MySQL 容器内部是否能正常访问

进入 MySQL 容器,检查数据库服务是否正常运行:

docker exec -it gmalldocker_mysql bash

在容器内部连接 MySQL:

mysql -u root -p

输入密码后,执行以下命令检查数据库和用户权限:

SHOW DATABASES;
SELECT user, host FROM mysql.user;

确认用户 root 是否允许从 %(所有主机)连接。如果没有 %,执行以下命令授予权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Yao990324';
FLUSH PRIVILEGES;

退出容器:

exit

2. 测试宿主机是否能访问 MySQL

在宿主机上测试 MySQL 是否可以通过端口 Port 访问:

mysql -h 127.0.0.1 -P por -u root -p

3. 测试外网是否能访问 MySQL

从外部设备或本地电脑测试是否可以连接到 MySQL(使用外网 IP):

mysql -h <VPS外网IP> -P port -u root -p

如果失败,请检查以下问题:

VPS 的防火墙配置: 确保 3310 端口对外开放。

sudo ufw allow port/tcp
sudo ufw reload

云服务商的安全组规则: 如果你的 VPS 是云服务器(例如阿里云、AWS),需要在控制台中检查安全组规则,确保 port 端口对外开放。

4. 检查 Docker 网络配置

确保 MySQL 容器运行在正确的网络模式下。如果是 bridge 模式,默认会限制外部访问。

检查 MySQL 容器的网络模式:

docker inspect gmalldocker_mysql | grep NetworkMode

如果输出为 bridge,可以尝试将容器网络改为 host 模式重新运行:

docker network inspect bridge

或者在启动时直接指定网络为 host 模式:

docker run -d --name mysql --network host -e MYSQL_ROOT_PASSWORD=password mysql:8.0.30

5. 检查 MySQL 日志

查看 MySQL 容器日志是否有异常:

docker logs mysql

如果日志中提示权限问题,可能是用户权限配置不正确。

© 版权声明
THE END
喜欢就支持一下吧
点赞159 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容