我不小心更改了 mysql 用户表中 root 用户的“主机”值。
我需要将其更改回 localhost,因为我将其更改为 arancillary2125(我的其他机器 DNS 名称),但由于“localhost”不再具有权限,我无法访问 mysql(从 PHPMYADMIN 或命令提示符)。
我正在运行 Windows XP // apache //
我尝试了以下解决方案,但没有奏效:
我不小心更改了 mysql 用户表中 root 用户的“主机”值。
我需要将其更改回 localhost,因为我将其更改为 arancillary2125(我的其他机器 DNS 名称),但由于“localhost”不再具有权限,我无法访问 mysql(从 PHPMYADMIN 或命令提示符)。
我正在运行 Windows XP // apache //
我尝试了以下解决方案,但没有奏效:
哎呀。
这是在你的本地机器上,我猜?在 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 选项
所以我也遇到了这个问题,突然发生在#1130 - 主机'localhost'不允许连接到这个MySQL服务器。
经过搜索和搜索,我可以告诉您 bdl 解决方案是前进的方向,一旦您可以重新登录服务器,您就可以更改权限并删除 my.ini mysql 配置文件下的 skip-grant-tables 行。
我本来会赞成 bdl 的帖子,但我在网站上太新了,还不能这样做。
重新创建 arancillary2125(即使在旧桌面上),然后以这种方式访问您的数据库。