我知道这类问题已经被问过很多次了,但是没有一个回答我的问题。请仔细阅读。
我是运行我的网站在localhost使用Wamp服务器正常。当今天我决定运行Acunetix扫描漏洞对我的localhost服务器。
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。
6条答案
按热度按时间brvekthn1#
一个简单的图解解决方案!
oiopk7p52#
当你的服务器运行--skip-grant-tables时,你禁用了所有的MySQL安全性,所以你不能使用GRANT命令。你能做的就是访问“mysql”数据库,然后直接SELECT和UPDATE你需要修改的行。在你的例子中,它将是用户表。
hs1rzwqc3#
我也有同样的问题。
您可以将
skip-grant-tables
添加到my.ini文件的# The MySQL server
下的[mysqld]
标记中,然后重新启动mysql服务器。现在可以打开phpmyadmin并转到mysql数据库中的user表。确保password属性的值为空,host属性的值为localhost。我遇到了第二个错误。PHPMyAdmin试图连接时主机值为“localhost”,而表中包含的值为127.0.0.1。
从my.ini中删除skip-grant-tables,然后重新启动mysql服务器。这应该可以工作。
ntjbwcob4#
http://dev.mysql.com/doc/refman/5.1/en/adding-users.html
编辑。
这是因为你的mysql服务器是在只读选项。要关闭它
以root用户身份连接到服务器:
并运行以下命令:
编辑2;
您必须停止服务器并运行以下命令
mysqld_safe --skip-grant-tables
,原因是根密码更改因此请停止服务器并使用start正常启动它
ddarikpa5#
1.点击配置在图像中显示
1.点击my.ini在图片中显示
1.在[mysqld]后添加skip-grant-tables并将显示保存在图片中。(* 此处编辑了拼写问题)
1.现在重新启动mySQL。就这样
jtjikinw6#
我通过重新安装服务器解决了这个问题。新的配置(
my.ini
)不包含--skip-grant-tables
选项,我能够按预期连接到服务器。在进行新的安装之前,请不要忘记备份数据库。