我已经使用 XAMPP(在 Windows XP/XAMPP 1.7.4 /PHP 5.3.5 上)有一段时间了,昨天早上我在开发我的网站时开始收到一些奇怪的消息。它发生在昨天,开始是我认为我可以处理的事情,但显然我不能。这些消息有些是关于超时的,有些是关于我网站内的连接字符串的“无法连接”。
我在想该网站可能会受到攻击,因为昨天早上和其他任何早上都一样。我实际上可以启动管理员(“启动/停止”apache 附近的按钮)页面,但无法登录 MySQL。我认为 root 没有设置,所以我尝试使用文档来重置它。
现在发生的事情是,无论我做什么,我都无法登录 MySQL 服务器。如果我尝试以 root 身份登录,我会一直拒绝访问 ''@'localhost' 和 'root@localhost'。
我能做些什么?
您需要从 Linux 命令行重新启动 mysql,如下所示:
如果您使用的是 Windows,请在 my.ini 的 mysqld 部分添加两个选项:
然后运行
这将允许在没有身份验证的情况下立即登录,并且没有任何远程连接潜入您身上。
然后
至少您将拥有一个名为 localhost 的用户,该用户
mynewuser
具有足够的登录权限。然后你应该运行这个查询:
并查看是否有任何新用户被黑客添加。如果您看到任何不应该存在的远程用户,您可以使用以下命令将其删除:
如果您使用的是 Windows,请记住从 my.ini 中删除
skip-grants-tables
和skip-networking
,然后停止并启动 mysql 服务。警告
/var/lib/mysql/mysql
在你做任何事情之前做一个备份。更新 2011-09-26 10:41 EDT
如果 INSERT INTO mysql.user 查询不起作用,则仅表示该查询与我使用此示例的 mysql 版本不兼容。
为了向用户了解正确的 INSERT 查询,请运行以下查询:
您将看到每个权限类型为 ENUM('Y','N') 的所有列。调整 INSERT 查询以匹配所有列,然后运行该 INSERT。
要为所有权限获取要设置为 Y 的确切列,请使用以下查询:
无论您使用的是什么版本的 MySQL,这都会显示给要设置的列。