1

我试过在网上寻找这个,但找不到我要找的东西。

在我工作的地方,我们有一台服务器,上面有多个 apache 设置,全部由不同的子域访问,总共大约 5 个(例如:abc.domain.com、xyz.domain.com、def.domain.com)。

问题是有一个 mysql 服务器,在我们需要连接的不同物理服务器上,它只允许来自特定主机的连接(比如 abc.domain.com)。每当我们尝试从 PHP 连接到它时,有时登录会失败,因为尝试登录的用户会出现在不同的主机名上。(前用户是 root@xyz.domain.com,而 root@abc.domain.com 是唯一允许的用户)。如果页面被刷新了几次,它最终会使用正确的主机名登录并正常工作。

我的问题是,是本地服务器上的 PHP 还是远程服务器上的 MYSQL 来确定用户从哪个主机名登录。

我知道最简单的解决方案是将其他子域添加到接受主机的 mysql 服务器列表中,但是我可以控制 PHP 服务器,而 MYSQL 服务器是不同的部门,想出一个会容易得多PHP方面的解决方案。

谢谢

4

1 回答 1

0

请参阅此处:mysql如何确定其客户端的主机名?. MySQL 服务器执行客户端 IP 的反向 DNS 查找。如果您有多个反向条目,则可能无法预测将使用哪一个,这就是您看到不一致结果的原因。

您应该删除额外的反向 DNS 条目(通常不需要它们),或者使用客户端 IP 而不是主机名配置您的权限。

于 2013-09-30T17:44:05.987 回答