我相信我已经成功地部署了我的(非常基本的)网站到fortrabbit,但只要我连接到SSH运行一些命令(如php artisan migrate或php artisan db:seed),我得到一个错误消息:

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

在某种程度上,迁移一定是有效的,因为我的表在那里——但这并不能解释为什么它现在不适合我。


当前回答

如果你使用Laravel Homestead, 这里是设置

(包括流浪者-虚拟机)

.bash-profile

alias vm="ssh vagrant@127.0.0.1 -p 2222"

database.php

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', '127.0.0.1'),
        'database'  => env('DB_DATABASE', 'homestead'),
        'username'  => env('DB_USERNAME', 'homestead'),
        'password'  => env('DB_PASSWORD', 'secret'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

终端

vm

vagrant@homestead:~/Code/projectFolder  php artisan migrate:install

其他回答

我在使用docker容器运行应用程序时遇到了这个问题。

解决方案是把我正在使用的MySQL服务容器的名称放在docker_compose中。DB_HOST. yml。在我的例子中,它是db:

DB_HOST=db

希望能有所帮助。

我在MAMP Pro上运行,在尝试迁移(创建db表)时遇到了类似的问题。我也尝试了上面提到的一些建议,但对我来说并不奏效。

因此,简单地(在谷歌了一个小时后),我向/config/database.php添加了两个东西。

'port' => '1234',
'unix_socket' => '/path/to/my/socket/mysqld.sock'

现在工作很好!

在我的情况下,我没有任何问题,只是忘记启动mysql服务…

sudo service mysqld start

这发生在我身上是因为MySQL没有运行。MySQL无法启动,因为我丢失了/usr/local/etc/my.cnf.d/目录。

这是我的/usr/local/etc/my.cnf配置文件作为glob include(包括/usr/local/etc/my.cnf.d/*.cnf)所要求的。

运行mkdir /usr/local/etc/my.cnf.d,然后启动MySQL,解决了这个问题。

Mamp用户启用选项允许网络访问MYSQL