记一次蛋疼的数据库误操作.

mariadb的错误同样适用于mysql.

一、问题

由于误操作,将root@localhost删除了,然后报错:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

以前也出现过这样的意外,但是我根据之前的恢复结果一直没成功,还是失败的。

百度了很多方法,发现和我试的方案是一样的,这让我无比的郁闷。

因为数据库是新装的,我直接重新装了,但是还是没啥用处(我也不知道为什么)。

二、解决

最常用的方法肯定是修改root密码。

主要步骤如下:

1.关闭数据库

$ service mysqld stop

2.使用mysqld_safe启动数据库

$ mysqld_safe --user=mysql --skip-grant-tables --skip-networking

3.修改mysql数据库的用户信息

$ update mysql.user set password=PASSWORD('new password') where User='root';

注意的问题:

上面的操作中,使用的是 update mysql.user xxx where User

但是我使用 where user = 就没有效果,我也不清楚为什么。

而且我之前都是使用 where user='root'来操作的。

4.刷新权限并退出

$ flush priviliges; 
$ quit;

QQ截图20170409160411.jpg