4

我不小心更改了 mysql 用户表中 root 用户的“主机”值。

我需要将其更改回 localhost,因为我将其更改为 arancillary2125(我的其他机器 DNS 名称),但由于“localhost”不再具有权限,我无法访问 mysql(从 PHPMYADMIN 或命令提示符)。

我正在运行 Windows XP // apache //

我尝试了以下解决方案,但没有奏效:

https://serverfault.com/questions/92870/1130-host-localhost-is-not-allowed-to-connect-to-this-mysql-server

4

3 回答 3

14

哎呀。

这是在你的本地机器上,我猜?在 Start->Run 中,输入 'services.msc' 并找到 MySQL 服务。停止服务。

编辑:

找到您的 my.ini 文件(通常在 C:\Windows 或 C:\mysql 等中)。如果您没有,请创建一个. 它只是一个普通的 ASCII 文件。

更改文件,将其添加到 [mysqld] 部分:skip-grant-tables.

在命令行上,发出命令net start MySQL并稍等片刻,MySQL 服务应该会启动。

仍然在命令行上,发出命令mysql -u root并点击“ENTER”。您应该以“root”用户身份登录 MySQL。仔细更改您的授权,然后注销。停止 MySQL 服务/服务器。重新编辑您的 my.ini 文件并删除/注释掉该skip-grant-tables行,然后再次启动服务器。尝试再次以 root 身份登录。

刚刚在我的 Win XP Pro 盒子上进行了测试。

这基本上具有绕过所有授权表的效果,因此不必费心查找您是否应该从该机器访问它。

MySQL 参考手册:--skip-grant-tables 选项

于 2010-03-30T19:12:52.487 回答
5

所以我也遇到了这个问题,突然发生在#1130 - 主机'localhost'不允许连接到这个MySQL服务器。

经过搜索和搜索,我可以告诉您 bdl 解决方案是前进的方向,一旦您可以重新登录服务器,您就可以更改权限并删除 my.ini mysql 配置文件下的 skip-grant-tables 行。

我本来会赞成 bdl 的帖子,但我在网站上太新了,还不能这样做。

于 2011-05-13T12:39:25.193 回答
1

重新创建 arancillary2125(即使在旧桌面上),然后以这种方式访问​​您的数据库。

于 2010-04-23T19:04:31.087 回答