优胜美地上的 MAMP - 连接错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录


MAMP on Yosemite - connection error : SQLSTATE[HY000] [2002] No such file or directory

我知道我以前见过这个问题,但没有看到能够在我的机器上解决问题的答案。

我对PHP比较陌生,没有Apache设置的经验。

我使用的是最新版本的 MAMP(非专业版),以及最新版本 OS X (10.3.3) 上的所有默认设置。

当我尝试通过PDO连接时,收到以下错误:

无法连接到数据库服务器。异常"PDOException",消息为"SQLSTATE[HY000] [2002]/Applications/MAMP/htdocs/resources/config.php:7 中没有此类文件或目录 堆栈跟踪: #0/Applications/MAMP/htdocs/resources/config.php(7): PDO->__construct('mysql:host=loca...', 'USERNAME', 'PASSWORD') #1/Applications/MAMP/htdocs/WEBSITE/index.php(2): include_once('/Applications/M...') #2 {main}

连接代码来自Kevin Yank的新手到忍者书,修改后适用于我的数据库,用户名等。

try
{
  $pdo = new PDO('mysql:host=localhost;dbname=db', $DBUser,$DBPass);
}
catch (PDOException $e)
{
  $error = 'Unable to connect to the database server.' . $e;
  include 'error.html.php';
  exit();
}

我已经尝试了本地主机和 127.0.0.1,无论如何都得到了同样的错误。

我在控制台中没有看到任何可以提供帮助的内容,但我可能没有寻找正确的东西。

任何帮助,不胜感激。谢谢

在Mac中尝试此命令

ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

如果mysqld没有运行(事情发生了),这可能会发生。如果您遇到配置错误,也可能发生这种情况。

例如,在我的安装中,我使用此DSN重现错误:

mysql:unix_socket=/tmp/mysqle.sock;dbname=notifications;charset=utf8 

配置调用/tmp/mysql.sock

检查配置以查看配置的方法(端口

或套接字)和配置的方法(端口或套接字)。如果DSN中的端口或套接字错误,您将在问题中生成相同的错误报告。