为数据库的安全性将mysql数据库root用户的权限设置为只有select权限,但是之后在更改数据库的数据表或者删除表的时候出现1045错误

1045:Access denied for user ‘root’@localhost (using password: YES)
解决办法如下:
(1)找到mysql安装目录下的my.ini或者是my-default.ini文件,用记事本打开之后,添加skip-grant-tables(不使用密码登录mysql),保存之后退出。
(2)使用管理员权限打开cmd窗口,进入mysql安装目录中的bin文件夹,停止mysql服务(net stop mysql),开启mysql服务(net start mysql),使配置生效。
(3)在bin目录下,输入mysql -u root -p

不用输入密码,直接enter就可以进入数据库了。

(4)手动修改用户root的权限,使其可以设置权限

执行命令:UPDATE mysql.user SET Grant_priv=‘Y’, Super_priv=‘Y’ WHERE User=‘root’;
执行命令:flush privileges; 刷新缓冲区。
执行命令:grant all on . to ‘root’@‘localhost’; 重新给用户root赋权。

执行命令: flush privileges; 重新刷新缓冲区。
这个时候再重新启动mysql服务就可以在mysql数据库只能够查看root用户已经拥有所有的权限了。
在这里插入图片描述

(5)修改密码
进入mysql数据库,mysql -u root -p 输入密码之后就可以进入了。执行命令:

alter user ‘root’@‘localhost’ identified by ‘密码’;
之后再次刷新缓冲区,重启mysql服务就可以使用新设置的密码登录了。

发布了206 篇原创文章 · 获赞 36 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zjy123078_zjy/article/details/105594212
今日推荐