php - 构造函数创建新的 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。但我不知道为什么它没有建立连接?
解决方案
只是猜测:您可能不应该使用远程 IP 地址,而是localhost
使用127.0.0.1
您的数据库主机。
根据pdo source code,此错误消息表示连接失败,这并不是真正有帮助,但可能表示以下情况之一(但不限于):
- 主机名错误
- 数据库名称错误
- 凭据错误
- 一些网络问题
- 你命名它:)
我的主要嫌疑人是主机名,但只要确保所有参数都正确。
推荐阅读
- node.js - 如何使用 elasticsearch npm 在 nodejs 中实现 elasticsearch 脚本
- python - 无法在 IDLE 上导入 pyperclip
- java - 在 Java 中直接 shuffle iterable
- shell - 以某种格式打印输出文件
- asp.net-core - 在 Asp.net Core 2.2 中设置最大请求 URL 长度
- javascript - 使音频进度条过渡更流畅
- php - Laravel,有没有办法将整个表与数组同步?
- r - 如何使用模型名称和变量列表来计算带有预测的表?
- android - 将 byte[ ] 转换为 String 返回 <���� 在 android bluetooth low energy 上工作
- laravel - 在 Laravel 中创建模型会导致数据库错误