Access denied for user root@localhost问题
忘记了root密码,或者删了root的一些权限,换来一堆报错,比如
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for tab
ERROR 1045 (28000): Access denied for user 'root'@'localhost'
这个时候最好别慌,如果是用Navicat,这个时候千万别关闭链接。马上把用户创建回来,并且不要吝啬权限,能给它配的全配了。不过这都是理想状态,可能慌张,可能是在清洁脏用户就想着“惜权”不配全部权限。好吧,万一最糟糕的发生了呢?还是说说如何补救。
救场步骤:
1,修改/etc/my.cnf配置,绕过权限判断
[mysqld]
skip-grant-tables
2,重启mysql,进入控制台(此时已无需密码),先刷新权限。记住先别忙着就操作权限和密码,先运行以下语句,否则你的操作依然会继续报错。
flush privileges;
3,然后重置root密码,或者给root添加权限。
update mysql.user set authentication_string=password('新密码') where user='root';//mysql 5.7
grant all privileges on *.* to root@'localhost';
4,最后还原一下my.cnf,然后重启。