#1130 - 主机 'localhost' 不允许连接到此 MySQL 服务器 - 运行 Acunetix 扫描后

Posted

技术标签:

【中文标题】#1130 - 主机 \'localhost\' 不允许连接到此 MySQL 服务器 - 运行 Acunetix 扫描后【英文标题】:#1130 - Host 'localhost' is not allowed to connect to this MySQL server - After running an Acunetix scan#1130 - 主机 'localhost' 不允许连接到此 MySQL 服务器 - 运行 Acunetix 扫描后 【发布时间】:2013-08-29 05:37:50 【问题描述】:

我知道这类问题已被问过很多次,但没有人回答我的问题。 请仔细阅读。

我通常使用 Wamp 服务器在 localhost 上运行我的网站。今天我决定在我的 localhost 服务器上运行 Acunetix 扫描以查找漏洞。

Acunetix 在短时间内向 mysql 表发送了大量命令(因为它是 localhost,所以命令运行速度很快)导致我的 mysql 服务器因错误而崩溃:

#1130 - Host 'localhost' is not allowed to connect to this MySQL server 

我已经尝试过的:

通过 mysqld --skip-grant-tables 运行 mysql 我可以访问mysql,所以我尝试运行

DROP USER 'root'@'127.0.0.1'; GRANT ALL PRIVILEGES ON . TO 'root'@'%';

但我得到了错误:

mysql> DROP USER 'root'@'127.0.0.1'; GRANT ALL PRIVILEGES ON . TO 'root'@'%';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
ion so it cannot execute this statement
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'TO 'r
oot'@'%'' at line 1

我承认我确实是一个 mysql 菜鸟,但我做了功课并搜索了谷歌,但无法找到解决方案。

有什么帮助吗?

我通过重新安装 wamp 服务器并完全卸载(即使使用 mysql)来解决问题。

【问题讨论】:

【参考方案1】:
     GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1';

http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

编辑。

这是因为您的 mysql 服务器在 read_only 选项上。关闭它

以root用户连接服务器:

mysql-h localhost-u root-p

然后运行命令:

mysql> set GLOBAL read_only = false;

mysql> FLUSH TABLES WITH READ LOCK;
mysql> UNLOCK TABLES;

EDIT2;

你必须停止服务器并运行它

mysqld_safe --skip-grant-tables 由于 root pwd chg

所以停止服务器并用 start 正常启动它

【讨论】:

我也不能用那个。我收到错误:ERROR 1290 (HY000): MySQL 服务器正在使用 --skip-grant-tables 选项运行,因此无法执行此语句 感谢您的快速回复。但不幸的是它仍然无法正常工作。这是我做的:pastebin.com/aqFjcrzX C:\wamp\bin\mysql\mysql5.5.24\bin>mysqld_safe 'mysqld_safe' 不是内部或外部命令、可运行程序或批处理文件。 改用这个mysqld --skip-grant-tables 运行这段代码前一定要先停止mysql,然后再启动【参考方案2】:

当您的服务器使用 --skip-grant-tables 运行时,您会禁用所有 MySQL 安全性,因此不允许使用 GRANT 命令。您可以做的是访问“mysql”数据库并直接选择和更新您需要更改的行。在您的情况下,它将是用户表。

【讨论】:

您好,谢谢您的回答。由于 phpmyadmin 无法正常工作,请问您可以给我查询吗?我应该更新什么? 如果我理解你的需要,你应该试试这个:使用mysql;更新用户集 Host='%' 其中 User='root' and Host='127.0.0.1';刷新权限;但我不确定“刷新特权”是否有效;如果没有,只需在“更新”语句之后重新启动您的 MySQL 服务器。 也许重新创建您的权限表会更容易,请参阅dev.mysql.com/doc/refman/5.5/en/mysql-install-db-problems.html 我设法通过重新安装 wampserver 来修复它。非常感谢朋友。 @MarcDelisle,如果不允许访问grant,如何允许访问底层mysql 表?这不是完全矛盾吗?【参考方案3】:

我有同样的问题。

您可以将skip-grant-tables 添加到[mysqld] 标记的my.ini 文件中,在# The MySQL server 下,然后重新启动mysql 服务器。

您现在可以打开 phpmyadmin 并转到 mysql 数据库中的用户表。确保密码属性的值为空且主机属性的值为 localhost。我面临第二个错误。 PHPMyAdmin 试图将主机值连接为“localhost”,并且该表包含值 127.0.0.1。

从 my.ini 中删除 skip-grant-tables 并重新启动 mysql 服务器。这应该有效。

【讨论】:

【参考方案4】:

一个简单的图解解决方案!

【讨论】:

这在更新 Windows 操作系统后开始发生。并且,按照上述步骤解决。【参考方案5】:

我通过重新安装服务器解决了这个问题。 新配置 (my.ini) 不包含 --skip-grant-tables 选项,我可以按预期连接到服务器。

在进行新安装之前不要忘记备份您的数据库。

【讨论】:

以上是关于#1130 - 主机 'localhost' 不允许连接到此 MySQL 服务器 - 运行 Acunetix 扫描后的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 1130错误,无法远程连接

MySQL的远程连接问题 错误1130

不允许主机“localhost”连接到此 MariaDB 服务器

mysql设置允许其他主机连接

1130 - Host XXX is not allowed to connect to this MySQL server。

无法使用 mysql-connector-python 连接到 localhost,错误 1130