HOST is not allowed to connect to this mysql server


 

 HOST is not allowed to connect to this mysql server

host主機不能訪問本機的mysql服務,原因需要連接非本機的mysql的時候,默認host是localhost,我們需要將這個mysql連接權限設置成%,更改方法直接通過軟件更改和命令行更改:
在mysql的數據庫選擇mysql這個數據庫,里面有一個user表,進入表中有一個host字段將localhost值更改為%這個保存后,刷新或者重啟MySQL服務都行。
登錄服務器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> 

授權訪問,因為是本地連接,所以,給予了所有權限

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

報錯,產生用戶不能授權的原因是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> 
mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

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

mysql> 

然后測試連接又報錯了,提示說:“客戶端不支持服務器請求的身份驗證協議”

 

 更改加密方式

  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>

連接成功

 


免責聲明!

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



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