Linux安裝Mysql8.0+,navicat遠程訪問出現2003和1251錯誤的分析

1.2003的問題:

之前一直以爲是服務器3306端口沒開,或者服務器防火牆攔截了3306。後來查看發現3306端口運行正常,防火牆也關閉了,仍然不行。突然想到,會不會是我的阿里雲網絡和安全組沒有開放3306?登錄控制檯發現入網果然沒有3306端口。新建安全組,配好了3306端口,果然navicat不再報2003,轉而出現了1251錯誤。

2.1251錯誤:

這個問題相對就好解決了,因爲它有針對性,這個問題是因爲8.0之後的加密規則發生了改變,navicat的默認規則與之不符,所以,可以把服務器上的mySql的加密規則改爲之前的加密規則:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

注意,這裏是@localhost,如果你已經把localhost改爲了%,那這裏應該是:

mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

修改完加密規則後,應該重置一次密碼,規則是mysql_native_password:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';

這樣,就發現navicat可以連上了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章