我无法实现与 mysql db 的 PDO 连接

Posted

技术标签:

【中文标题】我无法实现与 mysql db 的 PDO 连接【英文标题】:I can't achieve a PDO connection to mysql db 【发布时间】:2020-03-29 14:45:23 【问题描述】:

尝试从 php 脚本连接时,我不断收到“SQLSTATE[HY000] [2002] 连接被拒绝”。

我可以通过以下方式连接到 mysql/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot

设置是: Mamp Pro 版本:5.5.1 PHP版本:7.3.8 MySql 版本:5.7.26 检查运行状况报告:MySQL 正在运行并接受连接。 连接未使用加密。

这是脚本:

<?php
$dsn = "mysql:host=127.0.0.1;dbname=myDatabase;charset=utf8mb4";
try 
  $pdo = new PDO($dsn, "root", "root");
 catch (Exception $e) 
  error_log($e->getMessage());
  exit('Something weird happened'); //something a user can understand

如果我在 $dsn 中使用 localhost 而不是 127.0.0.1,我会得到:SQLSTATE[HY000] [2002] No such file or directory

任何想法将不胜感激。

【问题讨论】:

你检查服务是否正在运行? 我可以使用mysql命令行连接:Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot 尝试输入命令use myDatabase;。还要检查该数据库的用户 root 的授权。你应该检查系统 abd php 错误 @nbk 您对“使用 myDatabase”的建议让我意识到我剪切/粘贴了错误的示例。更正数据库名称解决了这个问题。谢谢你的主意。如果你想把它变成一个答案,我会把它归功于你。再次感谢。 【参考方案1】:

我认为您的数据库名称有误。

所以尝试输入mysql命令use myDatabase;。还要检查该数据库的用户 root 的授权。您还应该检查系统和 php 错误

【讨论】:

以上是关于我无法实现与 mysql db 的 PDO 连接的主要内容,如果未能解决你的问题,请参考以下文章

为啥连接失败时 PDO 会打印我的密码?

制作 PDO mysql 静态连接类的最佳方法?

PDO - 连接 - 如何保护

PHP实现的pdo连接数据库并插入数据功能简单示例

MySQL:PDO事务无法正常工作

php PDO mysql写法