环境:window11 mysql-8.0.37
现象:root用户的host设置为%后权限全无导致连接数据库报错,显示权限不足;
解决步骤:
-
开2个CMD窗口:该窗口使用
mysqld --console --skip-grant-tables --shared-memory启动服务器
- 第二个窗口:
mysql -uroot -p回车登录即可,不需要输入密码
- 输入use mysql;show tables;看到最底下的user;


- 输入select * from user\G,出现每个用户的权限

- 输入select host,user,authentication_string from user;可以更清楚的看到用户信息

- 我想保留%,于是创建了一个新用户,语法为:create user '用户名'@'登陆主机/ip' identified by '密码';出现了报错后,输入flush priviledges;再输入创建命令;


- 再次输入 select host,user,authentication_string from user;发现创建成功;

- 给这个用户赋予所有权限grant all privileges on *.* to 'test'@'localhost';

- 输入use mysql;然后输入select * from use\G查看是否赋予权限


- 成功之后关闭两个窗口,启动mysql服务,并尝试使用Navicat输入用户名和密码新建连接,验证成功!

- 如果想要删除用户:记得加上分号;

- 按照类似的方式可以直接给host为%的开放所有权限;这样root也可以进入;

496

被折叠的 条评论
为什么被折叠?



