小编典典

在未知当前密码时重置MySQL根密码

mysql

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

我尝试停止mysql servicw,使用“跳过授予表”选项重新启动,然后仅使用无密码登录:

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并重新安装,但是出现了同样的错误。

有什么建议么?


阅读 361

收藏
2020-05-17

共1个答案

小编典典

两种选择:

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

否则,请尝试使用手册中的这些说明

2020-05-17