天天看點

記錄一次Navicat連接配接MySQL資料庫報錯解決方案

一:安裝新版MySQL8.X教程如下

MySQL下載下傳與安裝(8.0.20版)教程

二:連接配接測試發現報錯

報錯資訊如下:

HOST is not allowed to connect to this mysql server

記錄一次Navicat連接配接MySQL資料庫報錯解決方案

host主機不能通路本機的mysql服務,原因需要連接配接非本機的mysql的時候,預設host是localhost,我們需要将這個mysql連接配接權限設定成%,更改方法直接通過軟體更改和指令行更改:

在mysql的資料庫選擇mysql這個資料庫,裡面有一個user表,進入表中有一個host字段将localhost值更改為%這個儲存後,重新整理或者重新開機MySQL服務都行。

操作步驟如下:

1:登入伺服器mysql檢視

mysql> use mysql;
Database changed
mysql> 
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
4 rows in set (0.00 sec)
mysql>
           

2:授權通路,因為是本地連接配接,是以,給予了所有權限

mysql> grant all privileges on *.* to 'root'@'%' with grant option;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
           

3:産生報錯,産生使用者不能授權的原因是mysql 資料庫中user 表中的特定使用者(root) 的host 的屬性值為localhost.

mysql> 
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> 
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>
           

4:然後測試連接配接又報錯了,提示說:“用戶端不支援伺服器請求的身份驗證協定”

記錄一次Navicat連接配接MySQL資料庫報錯解決方案

5: 更改加密方式和密碼

mysql> alter user 'root'@'%' identified by '111111' password expire never;
  Query OK, 0 rows affected (0.01 sec)

  mysql>
           

更改密碼

mysql> alter user 'root'@'%' identified with mysql_native_password by '111111';
Query OK, 0 rows affected (0.00 sec)

mysql>
           

重新整理權限

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql>
           

6:連接配接成功

記錄一次Navicat連接配接MySQL資料庫報錯解決方案