本地無法遠程連接MySql問題匯總


一、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;#刷新權限

再次測試連接,發現連接成功

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM