#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 扫描后的主要内容,如果未能解决你的问题,请参考以下文章
不允许主机“localhost”连接到此 MariaDB 服务器
1130 - Host XXX is not allowed to connect to this MySQL server。