阿里云服務器,用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; -- 刷新權限