搭了一个 mysql 自己测试用,
如下授权后仍然不能远程登录:
grant all privileges on . to root@'%' identified by '123456' with grant option ;
-
检查授权是否正确:
mysql> show grants for root@'%';
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
正确 -
检查防火墙
因为是测试机直接停掉防火墙:
ufw disable
仍然不能远程连接 -
telnet 3306
利用 telnet 3306 端口,发现不通,问题找到了
从https://blog.csdn.net/fjssharpsword/article/details/72865706 参考
得出结论是 my.cnf 里的
bind-address = 127.0.0.1 的问题
这里默认是本地的地址,只允许本机访问3306,所有 其他服务器不能连接
改为 0.0.0.0 重启服务就可以了, 问题解决
后续: 后跟 DBA 大佬谈到这个配置参数, 直接注释掉 这条参数就好了,









网友评论