PDOException: SQLSTATE[HY000] [2002] 没有这样的文件或目录

2022-08-30 17:57:19

我已经把PushChatServer dir放在htdocs文件夹中,并创建数据库puschat尝试运行@“http://localhost/PushChatServer/api/test/database.php"

然后我得到了以下例外。

我想做同样的事情来解释这个链接 http://www.raywenderlich.com/32963/apple-push-notification-services-in-ios-6-tutorial-part-2

我已经做了所有这些,但我得到了这个例外

无法连接到数据库。原因:异常“PDOException”,消息“SQLSTATE[HY000] [2002] 在 /Applications/MAMP/htdocs/PushChatServer/api/test/database.php:17 堆栈跟踪:#0 /Applications/MAMP/htdocs/PushChatServer/api/test/database.php(17): PDO->__construct('mysql:host=loca...', 'root', 'root', Array) #1 {main}


答案 1

您需要将主机从本地主机更改为 127.0.0.1

Laravel 4:在你的尝试中将主机从 更改为app/config/database.phplocalhost127.0.0.1

Laravel 5:在文件中,从 更改为.envDB_HOSTlocalhost127.0.0.1

资料来源: PDOException SQLSTATE[HY000] [2002] 没有这样的文件或目录


答案 2

快速测试(在外壳中运行):

php -r "new PDO('mysql:hostname=localhost;dbname=test', 'username', 'password');"

SQLSTATE[HY000] [2002] 没有这样的文件或目录意味着php找不到mysql.default_socket文件。通过修改 php.ini 文件来修复它。在Mac上,它是mysql.default_socket = /tmp/mysql.sock(请参阅PHP - MySQL连接不起作用:2002没有这样的文件或目录)

SQLSTATE[HY000] [1044] 用户“用户名”@“本地主机”的访问被拒绝祝贺!您现在拥有正确的mysql.default_socket设置。修复您的数据库名称/用户名/密码。

另请参阅在 PHP 中创建与 PDO 的连接时出错


推荐