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>
連接成功