阿里云服务器,用apt-get新装的mysql-server,竟然无法通过远程连接到,竟然是这个原因。不是防火墙,iptables早就关了。也不是安全组,不是人为限制访问的话,根本没必要弄安全组
排查过程
netstat -antop|grep 3306
结果发现
截图来看,监听的:127.0.0.1 本地回环地址,监听此地址,仅支持服务器内部本地访问,外部无法通信
于是查看mysql的配置文件,cat /etc/mysql/mysql.conf.d/mysqld.cnf
发现地址配的都是127.0.0.1 于是改成0.0.0.0
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
再重启mysql,问题解决
然后又遇到一个问题,本地程序竟然无法通过pymysql连接,报错
在 MySQL 8.0 中,这个问题通常与它的默认认证插件变更有关。MySQL 8.0 引入了 caching_sha2_password 作为默认认证插件,而之前的版本使用 mysql_native_password。这可能导致一些客户端(包括 pymysql)连接失败,或者 root 用户的权限配置不同。因为pymysql 对 caching_sha2_password 的支持可能存在问题,建议修改为兼容性更好的 mysql_native_password:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES; -- 刷新权限