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可以連上了。