使用 Mac OS X 和 Homestead 2.2.1 和 Laravel 5.2。
在终端(在我的项目文件夹中的宅基地内)我可以执行 php artisan 来查看所有可用的命令。当我尝试运行 php artisan migrate 时,出现连接错误:
SQLSTATE[HY000] [2002] Connection refused
我已经使用这些 .env 设置设置了一个 Laravel 项目
DB_HOST=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=homestead
DB_PASSWORD=secret
我还为 DB_HOST 尝试了 localhost ,为 DB_USERNAME 和 DB_PASSWORD 尝试了 root 。并将这些的所有可能变化放在一起!
在 Sequel Pro(数据库管理应用程序)中,我可以使用这些设置进行连接
Host 127.0.0.1
Username homestead
Password secret
Database tcv
Port 33060
但是这个数据库显然是空的,因为我不能从终端迁移到它…
据我所知,这是一个配置问题,因为我可以使用 Sequel Pro 连接到它。但老实说,我不知道什么是设置错误。
谢谢您的帮助 !!
编辑
出于某种原因,将我的项目移动到 MAMP 并运行 php artisan migrate 时,我得到了相同的 SQLSTATE[HY000] [2002] Connection refused
错误。
现在我完全迷失了……
原文由 nclsvh 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题
在 Laravel 中,您有
config/database.php
连接的所有设置都位于其中。您在项目的根目录中还有一个.env
文件(每个人都使用它来节省时间)。这包含可用于整个项目的变量。在标准 L5 项目中,
config/database.php
的 MySql 部分如下所示:注意没有设置端口!
虽然在我的
.env
文件中我设置了DB_PORT=33060
。但是value (3306)
从未读入config/database.php
。所以不要像我一样笨,忘记检查
database.php
文件。使固定
只需将
'port' => env('DB_PORT', 3306),
添加到您的 config/database.php 并在 .env 中设置该值,如下所示DB_PORT=3306