设置错误的 mysql 权限/主机后无法登录 mysql

设置错误的 mysql 权限/主机后无法登录 mysql

在 CentOS 5.x 上,我使用了 webmin 面板,在 mysql 设置中,我试图允许“root”从我的家庭 ip 以及 localhost 登录。在主机列表中,我有“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,但没有变化。有没有办法重置它?我没有数据库数据,如果需要,我可以删除所有内容。

谢谢。

答案1

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

/etc/init.d/mysqld stop

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

mysqld_safe --skip-grant-tables &

您应该看到 mysqld 成功启动。现在您应该能够无需密码连接到 mysql。

mysql --user=root mysql

然后更新相关信息:

update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;

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

/etc/init.d/mysqld restart

另请查看MySQL 文档如果你遇到困难,可以帮你

答案2

您需要使用--skip-grant-tables选项启动 mysql。请查看这一页。之后,您应该能够连接到 mysql 数据库。然后您可以修复错误。

相关内容