PDOException SQLSTATE[HY000][2002]没有此类文件或目录

PDOException SQLSTATE[HY000][2002]没有此类文件或目录

我相信我已经成功地将我的(非常基本的)站点部署到fortrabbit,但是一旦我连接到SSH来运行一些命令(例如php artisan migratephp artisan db:seed)我收到一条错误消息:

[PDOException]SQLSTATE[HY000] [2002] No such file or directory

在某种程度上,迁移一定起作用了,因为我的表在那里-但这并不能解释为什么它现在不适合我。


婷婷同学_
浏览 1605回答 3
3回答

慕仙森

错误消息指示尝试通过套接字进行MySQL连接(不支持这种连接)。在Laravel(技工)的上下文中,您可能希望使用不同的/正确的环境。例:php artisan migrate --env=production(或任何环境)。

噜噜哒

我也遇到了同样的问题,我正在运行MacOSX10.10Yosemite。我已经启用了操作系统附带的ApacheServer和PHP。然后,我将mCrypt库配置为入门。之后,当我使用模型和DB时,我得到了错误:[PDOException]SQLSTATE[HY000] [2002] No such file or directory我发现的原因仅仅是因为PHP和MySQL自身无法连接。为了解决这个问题,我遵循下面的步骤:打开终端并通过以下方式连接到MySQL:mysql -u root -p它会问你相关的密码。然后,一旦得到MySQL promt,输入下一个命令:mysql> show variables like '%sock%'你会得到这样的东西:+-----------------------------------------+-----------------+| Variable_name                           | Value           |+-----------------------------------------+-----------------+| performance_schema_max_socket_classes   | 10              || performance_schema_max_socket_instances | 322             || socket                                  | /tmp/mysql.sock |+-----------------------------------------+-----------------+保留最后一行的值:/tmp/mysql.sock在你的laravel项目文件夹,查找database.php文件中有配置DB连接参数的位置。在MySQL节在末尾添加下一行:'unix_socket' => '/tmp/mysql.sock'你一定有这样的东西:'mysql' => array(         'driver'    => 'mysql',         'host'      => 'localhost',         'database'  => 'SchoolBoard',         'username'  => 'root',         'password'  => 'venturaa',         'charset'   => 'utf8',         'collation' => 'utf8_unicode_ci',         'prefix'    => '',         'unix_socket' => '/tmp/mysql.sock',     ),现在只需保存更改,并重新加载页面,它必须工作!
打开App,查看更多内容
随时随地看视频慕课网APP