排查思路
-
命令行連接mysql
我是安裝在本地docker容器中的,可以使用一下命令直接連接docker exec -it mysqldb mysql -u root -p
其中mysqldb是我的mysql容器名字,后面跟隨mysql的連接命令,然后輸入密碼即可。 如果沒有設(shè)置過密碼,那么直接把-p去掉即可。
-
在 MySQL 中,執(zhí)行以下命令以查看當(dāng)前的用戶和主機(jī)權(quán)限:
mysql> SELECT user, host FROM mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | mysql.infoschema | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+
我用的是root用戶,可以看到有一個(gè)配置只允許localhost連接,另一個(gè)
%
代表允許所有ip連接。
實(shí)際測試下來,‘localhost’ 的優(yōu)先級比’%'高,這就是出現(xiàn)禁止連接的問題原因
解決方案
使用下面的命令將root用戶的host字段改為"%‘’
update mysql.user set host = '%' where user = 'root';
重新查看
mysql> SELECT user, host FROM mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
可以看到,root用戶就只有一個(gè)帶%的了。
最后使用下面的命令刷新權(quán)限
FLUSH PRIVILEGES;
重新使用可視化工具連接mysql,問題解決了。文章來源:http://www.zghlxwxcb.cn/news/detail-724822.html
備注
當(dāng)創(chuàng)建新用戶時(shí),可以直接允許所有ip連接,后面就不會那么麻煩了。文章來源地址http://www.zghlxwxcb.cn/news/detail-724822.html
CREATE USER '用戶名'@'%' IDENTIFIED BY '密碼';
GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
到了這里,關(guān)于連接mysql報(bào)錯(cuò) :Host ‘xxx.xx.x.x‘ is not allowed to connect to this MySQL server的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!