当前密码未知时重置MySQL root密码

我继承了一个安装了mysql的服务器.我没有任何用户的mysql密码,甚至没有root(虽然我有linux root密码).另外,我只知道另一个用户帐户besdies root,并且没有权限执行任何操作,甚至SELECT.

我尝试停止mysql servicw,使用skip grant tables选项重新启动,只是在没有密码的情况下登录:

service mysqld stop
service mysqld start --skip-grant-tables &
mysql -u root

但是得到以下错误:

Access denied for user 'root'@'localhost' (using password: NO)

然后我尝试重置密码:

mysqladmin -u root password 'newpw'

但这也给出了访问被拒绝的错误.

我还尝试以其他用户身份登录(没有pw)并执行以下命令:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';

并得到此错误:

ERROR 1142 (42000): UPDATE command denied to user ''@'localhost' for table 'user'

我也试过删除mysql并重新安装,但我得到了同样的错误.

有什么建议么?

解决方法:

两种选择:

如果要使用–skip-grant-tables,则可能需要直接启动mysqld,因为选项不一定通过init脚本传递.

否则,请从手册中尝试these instructions.

上一篇:正则表达式密码PHP


下一篇:使用星号掩盖python中的用户输入