一、2003- Can`t connect to mysql server on '101.200.73.190'
1、錯誤描述
2、錯誤原因
- 服務器上的mysql服務沒有開啟
- 無法ping通101.200.73.190
- 端口號3306沒有開放
3、解決方法
先來確保服務器mysql服務開啟:
然后本地打開powershell,ping一下服務器IP
能夠ping通,我們再來看看服務器的端口號3306是否開放
好吧,端口號的問題,因為我用的是阿里雲,Windows服務器沒有開啟防火牆,所以只需要在阿里雲上加入入站規則即可,如下:
再監測下3306發現可以了
telnet 101.200.73.190 3306
然后再次在navicat上測試連接,發現有出現問題了:Host is not allowed to connect to this MySQL server,接下來說該問題的解決方法。
二、Host is not allowed to connect to this MySQL server
1、問題描述
-
遠程服務器安裝了mysql服務並且啟動成功,在本地可以進行自由的訪問和更新等操作
-
阿里雲服務器已開通了遠程訪問服務器3306端口的權限並且通過telnet命令查看3306處於監聽過程中
-
本地通過navicat工具連接mysql數據庫報錯如下:Host is not allowed to connect to this MySQL server
2、解決辦法
- 遠程連接服務器,在服務器內mysql系統目錄下的/bin文件下打開powershell,按住shift+右鍵選擇,會看到powershell
- 輸入如下命令:
./mysql -u root -p;
- 輸入密碼登入mysql;
- 先來查詢下數據庫信息:
show databases;
- 執行use mysql命令,進入系統數據庫,然后查詢下用戶情況
select host from user where user='root';
該結果表示是由於當前的root用戶限制在當前的內網ip內訪問的,需要修改訪問域。
- 更改訪問域,命令如下:
update user set host = ‘%’ where user = ‘root’;

- 重啟mysql服務即可
解決了這個問題,又出現了新的問題,如下圖:
三、1251- Client does not support authentication protocol
1、問題原因
mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password
2、解決方法
方法一:升級navicat驅動;
方法二:把mysql用戶登錄密碼加密規則還原成mysql_native_password;
這里詳細介紹下方法二
遠程連接服務器,打開powershell,進入MySQL的bin目錄C:\MySql\mysql-8.0.22-winx64\bin,輸入如下命令,然后輸入密碼,進入mysql模式
./mysql -u root -p
然后依次輸入:
use mysql; alter user 'root' identified with mysql_native_password by 'qxh123';#更新一下用戶的密碼 flush privileges;#刷新權限
再次測試連接,發現連接成功