设置不正确的mysql权限/主机后无法登录mysql

adr*_*TNT 1 mysql hosts users host

在 CentOS 5.x 上,我使用了 webmin 面板并且我在 mysql 设置中,我试图允许“root”除了本地主机之外从我的家庭 IP 登录。在主机列表中,我有“any”或“localhost”,我尝试将其设置为“localhost,84.xx.xx.xx”,认为它允许我使用 mysql 管理员程序从本地计算机登录。

保存输入的数据后,我无法在 mysql 上做太多事情

Webmin 说 DBI connect failed : Access denied for user ''@'localhost' to database 'mysql'

在 SSH mysql 中说 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

我的猜测是 mysql 不再允许 root 从任何主机连接,因为我输入了不正确的主机。

我尝试卸载并重新安装 mysql 但没有改变。有没有办法重置这个?我没有数据库数据,如果需要我可以删除所有数据。

谢谢。

tha*_*osk 5

以 root 身份登录终端并停止 mysql 守护进程。

/etc/init.d/mysqld stop
Run Code Online (Sandbox Code Playgroud)

然后启动 mysql 守护进程并跳过存储密码和其他特权信息的授权表

mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)

您应该会看到 mysqld 成功启动。现在您应该能够在没有密码的情况下连接到 mysql。

mysql --user=root mysql
Run Code Online (Sandbox Code Playgroud)

然后更新相关信息:

update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;
Run Code Online (Sandbox Code Playgroud)

然后像往常一样重新启动 mysql 守护进程

/etc/init.d/mysqld restart
Run Code Online (Sandbox Code Playgroud)

如果您遇到困难,还可以查看MySQL 文档以帮助您解决问题