gpt4 book ai didi

php - 忽略 PDO 主机

转载 作者:行者123 更新时间:2023-11-29 07:05:10 25 4
gpt4 key购买 nike

我正在设置 Symfony2,并且作为该过程的一部分,我第一次使用 PDO 扩展。我的设置没问题,但在 DSN 中指定我的主机名时遇到问题。 MySQL 主机位于不同的服务器上,我将其包含在 DSN 中(比如“beta.example.com”)。然而,返回的错误消息总是说在本地服务器上存在访问被拒绝的响应(例如“alpha.example.com”)。

请注意:有一个 MySQL 服务器在本地运行(在“alpha.example.com”上),因此访问被拒绝消息,但我需要使用的是在 beta.example.com 上运行。

我的 DSN:

mysql:host=beta.example.com;port=3306;dbname=testdb;charset=UTF8

这是附加的确切错误的屏幕截图(修改了主机名以匹配我上面的示例):

https://skitch.com/nathanntg/gbrhx/pdo-exception

而且它与 Symfony 无关,如果我直接从一个空白的 PHP 文件调用 PDO 创建,它就会发生:

<?
$a = new PDO('mysql:host=beta.example.com;port=3306;dbname=testdb;charset=UTF8', 'testuser', 'password');
?>

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user 'testuser'@'alpha.example.com' (using password: YES)' in -:2
Stack trace:
#0 -(2): PDO->__construct('mysql:host=beta…', 'testuser', 'password')
#1 {main}
thrown in - on line 2

非常感谢任何帮助!

最佳答案

“访问被拒绝”消息由联系的 MySQL 服务器生成,并不(必然)反射(reflect)您正在使用的 DNS 名称。

确保 beta.example.com 解析为您正在使用的主机(使用 host beta.example.com)。此外,该 MySQL 服务器上的配置可能以某种方式搞砸了。如果您从 beta.example.com 登录 beta.example.com,是否会收到相同的错误消息?

您可以通过创建数据包跟踪(例如使用 wireshark )找出联系的主机。一个简单的替代方法是暂时停止(或设置防火墙)beta.example.com 上的 MySQL 服务器并查看错误消息是否发生变化。

关于php - 忽略 PDO 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7787369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com