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

时间:2013-08-26 16:52:17

标签: mysql phpmyadmin wamp

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

我正常使用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 noob,但我做了我的家庭作业并搜索了谷歌,但无法找到解决方案。

任何帮助?

我通过重新安装wamp服务器并完全卸载来解决问题,即使使用mysql也是如此。

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

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

enter image description here

答案 2 :(得分:3)

     GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1';

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

EDIT。

这是因为你的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

所以停止服务器并以启动

启动它

答案 3 :(得分:1)

我有同样的问题。

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

您现在可以打开phpmyadmin并转到mysql数据库中的user表。确保password属性的值为空,并且host属性的值为localhost。我正面临第二个错误。 PHPMyAdmin尝试使用主机值“ localhost”进行连接,并且该表包含值127.0.0.1。

从my.ini中删除skip-grant-tables,然后重新启动mysql服务器。这应该工作。