根 IPv6 / ::1 地址在 phpMyAdmin 中是否需要密码?

Does root IPv6 / ::1 address need password in phpMyAdmin?

我是设置数据库的新手,我安装了 EasyPHP(e-devserver 14.1 VC9),设法通过 phpMyAdmin 为 root 用户的“127.0.0.1”地址分配了一个密码,因为它说将密码留空是一个馊主意。我将 'localhost' 编辑为相同的密码。这给了我很多其他人遇到的 1045 错误,设法找到配置文件并按照 this link 所说的那样对其进行编辑。然而,IPv6(::1 主机)仍然没有密码,虽然我可以在 phpMyAdmin 中编辑它,但如果我遇到另一个错误,我找不到关于在哪里编辑它的文档。

如果没有密码,该地址是否容易受到攻击?如果是,我该如何分配一个而不会出错?

如果有人可以直接访问您的服务器,他们可以尝试使用以下命令通过 IPv6 连接到 MySQL:mysql -h ::1 -u root -p

如果 MySQL 根用户 'root'@'::1' 没有密码,那么他们可以获得访问权限。

或者,如果他们能够将 PHP 脚本上传到配置为使用(PDO、mysqli 等)通过 IPv6 连接的服务器,他们就可以获取脚本进行连接。

您可以通过运行以下查询来检查是否允许根 IPv6 连接:

select user, host from mysql.user;

如果您在列表中看到 root | ::1 之类的任何内容或任何其他 IPv6 地址,则可能有用户配置了 IPv6 主机访问权限。

要更改现有 IPv6 用户的密码,请发出类似于以下内容的查询:

SET PASSWORD FOR 'root'@'::1' = PASSWORD('cleartext password');

如果用户不存在而您想添加它,请使用:

CREATE USER 'root'@'::1' IDENTIFIED BY 'cleartext password';

然后您需要grant该帐户的适当权限。