Yosemite 上的 MAMP - 连接错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录
Posted
技术标签:
【中文标题】Yosemite 上的 MAMP - 连接错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录【英文标题】:MAMP on Yosemite - connection error : SQLSTATE[HY000] [2002] No such file or directory 【发布时间】:2015-08-30 08:57:25 【问题描述】:我知道我以前见过这个问题,但没有看到能够解决我机器上的问题的答案。
我对 php 比较陌生,对 Apache 设置没有经验。
我在最新版本的 OS X (10.3.3) 上使用具有所有默认设置的最新版 MAMP(非专业版)。
当我尝试通过 PDO 连接时,我收到以下错误:
无法连接到数据库 server.exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in /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();
我尝试了 localhost 和 127.0.0.1 并得到同样的错误。
我在控制台中没有看到任何可以提供帮助的东西,但我可能没有找到正确的东西。
感谢任何帮助。谢谢
【问题讨论】:
嗨,是的,我看到 mysqld 在活动监视器中运行。它在我的用户名下。 感谢您的帮助。我的方法是端口,但我没有在代码中包含端口号。我之前尝试过包含它,但使用的是 Apache 端口而不是 MySQL 端口。现在像魅力一样工作。 【参考方案1】:如果mysqld
没有运行(事情发生),这可能会发生。如果您有配置错误,也可能发生这种情况。
例如,在我的安装中,我用这个 DSN 重现了错误:
mysql:unix_socket=/tmp/mysqle.sock;dbname=notifications;charset=utf8
配置调用/tmp/mysql.sock
检查配置以查看配置的方法(端口或套接字)以及配置的方法(端口或套接字)。如果您的 DSN 中有错误的端口或套接字,您将在问题中生成相同的错误报告。
【讨论】:
【参考方案2】:在 mac 中试试这个命令
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
【讨论】:
以上是关于Yosemite 上的 MAMP - 连接错误:SQLSTATE[HY000] [2002] 没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X Yosemite 10.10 上使用 Mamp Pro 进行 Mcrypt
Macports MAMP Yosemite 无法加载虚拟主机 - 虚拟主机无法正常工作