首页 > 解决方案 > 构造函数创建新的 PDO 连接失败

问题描述

我正在尝试访问远程 MySQL 服务器。我在远程服务器中创建了一个用户,并将所有远程权限授予所有主机。这是我连接数据库的代码:

<?php
try{
    $dsn = "mysql:host=MY_REMOTE_SERVER_IP;dbname=DB_NAME;port=3306";
    $db = new PDO($dsn, 'USER_NAME','PASSWORD');
}catch(Exception $e){
    echo $e->getMessage();
}

该代码在我的本地主机上运行良好。我什至在一些Playgrounds上尝试了代码,它运行良好。但在我的网站上,它不起作用。该网站没有连接到数据库,总是返回Constructor failed错误。

PHP 版本7.4在我的网站上,它支持 PDO。但我不知道为什么它没有建立连接?

这是错误的图片: 错误信息

标签: phpmysqlpdoremote-mysql

解决方案


只是猜测:您可能不应该使用远程 IP 地址,而是localhost使用127.0.0.1您的数据库主机。

根据pdo source code,此错误消息表示连接失败,这并不是真正有帮助,但可能表示以下情况之一(但不限于):

  • 主机名错误
  • 数据库名称错误
  • 凭据错误
  • 一些网络问题
  • 你命名它:)

我的主要嫌疑人是主机名,但只要确保所有参数都正确。


推荐阅读