我尝试通过PDO连接到另一个数据库服务器(MySQL),使用IP地址。
$db = new PDO('mysql:host=IP-ADDRESS;dbname=AAA', 'USER', 'XXXXX');
我在这里伪造了IP地址和用户名,这并不是错误 ;)
但出于某种原因,PDO将进行一些疯狂的反向DNS查找,最终连接到完全不同的服务器,该服务器具有另一个IP地址和其他域名,根据PDO执行的反向DNS查找所找到的A记录而指定。
PDO抛出特定的异常:
SQLSTATE[28000] [1045] Access denied for user 'USER'@'WWW.ANOTHER-SERVER.COM'
在通过mysql-client连接终端时,一切都按预期工作。
- 我如何避免PDO进行反向DNS查找?
- 我如何告诉PDO它应该根据参数连接IP地址?
- 为什么这个反向DNS查找是如此错误的呢?
/etc/hosts中没有特定的条目,可能是造成这种情况的根本原因。