我相信我已经成功地部署了我的(非常基本的)网站到fortrabbit,但只要我连接到SSH运行一些命令(如php artisan migrate或php artisan db:seed),我得到一个错误消息:
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
在某种程度上,迁移一定是有效的,因为我的表在那里——但这并不能解释为什么它现在不适合我。
我相信我已经成功地部署了我的(非常基本的)网站到fortrabbit,但只要我连接到SSH运行一些命令(如php artisan migrate或php artisan db:seed),我得到一个错误消息:
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
在某种程度上,迁移一定是有效的,因为我的表在那里——但这并不能解释为什么它现在不适合我。
当前回答
当使用VirtualMachine时,确保你ssh到那台机器,导航到你的App文件夹,并从那里调用php artisan migrate命令。
其他回答
在Laravel 5中,数据库用户名和密码保存在项目目录中的.env文件中,例如。
DB_HOST=127.0.0.1
DB_DATABASE=db1
DB_USERNAME=user1
DB_PASSWORD=pass1
正如你所看到的,这些环境变量覆盖了这里的“forge”字符串,所以改变它们没有任何影响:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
更多信息请访问https://mattstauffer.co/blog/laravel-5.0-environment-detection-and-environment-variables
仔细检查端口。在我的情况下,它是8889,我正在使用8888。 将“DB_HOST”从“localhost”改为“127.0.0.1”,反之亦然
来自@stuyam的回答为我解决了“没有这样的文件或目录”的问题
简单回答:将/app/config/database.php文件中的“host”从“localhost”更改为“127.0.0.1”
但随后出现了“拒绝连接”错误。如果有人有同样的问题,我的解决方案是更新app/config/local/database.php文件,使端口为8889:
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '8889',
'database' => 'databaseName',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
我在Elixir/Gulp和Homestead中运行PHPUnit时遇到了这个问题。
在我的例子中,我将.env文件从DB_HOST=localhost编辑为DB_HOST=192.168.10.10,其中192.168.10.10是我的Vagrant/Homestead主机的IP。
我在访问Drupal网站时也遇到了类似的问题。我通过打开命令行,重新启动我的MySQL服务器或服务来修复它:
service mysqld restart
这应该有用。如果没有,重启你的本地web服务器:
service httpd restart
这应该足够了。希望它也适用于其他环境。注意,这些命令通常需要超级用户权限。