我继承了一个安装了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.