周期购那个网站做的比较好,网络平台指网站 建设项目所在地,电白网站建设,wordpress插件一键排查思路 命令行连接mysql 我是安装在本地docker容器中的#xff0c;可以使用一下命令直接连接 docker exec -it mysqldb mysql -u root -p其中mysqldb是我的mysql容器名字#xff0c;后面跟随mysql的连接命令#xff0c;然后输入密码即可。 如果没有设置过密码#xff0c…排查思路 命令行连接mysql 我是安装在本地docker容器中的可以使用一下命令直接连接 docker exec -it mysqldb mysql -u root -p其中mysqldb是我的mysql容器名字后面跟随mysql的连接命令然后输入密码即可。 如果没有设置过密码那么直接把-p去掉即可。 在 MySQL 中执行以下命令以查看当前的用户和主机权限 mysql SELECT user, host FROM mysql.user;
-----------------------------
| user | host |
-----------------------------
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
-----------------------------我用的是root用户可以看到有一个配置只允许localhost连接另一个%代表允许所有ip连接。 实际测试下来‘localhost’ 的优先级比’%高这就是出现禁止连接的问题原因
解决方案
使用下面的命令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用户就只有一个带%的了。
最后使用下面的命令刷新权限
FLUSH PRIVILEGES;重新使用可视化工具连接mysql问题解决了。
备注
当创建新用户时可以直接允许所有ip连接后面就不会那么麻烦了。
CREATE USER 用户名% IDENTIFIED BY 密码;
GRANT ALL PRIVILEGES ON *.* TO 用户名% WITH GRANT OPTION;
FLUSH PRIVILEGES;