在Laravel Homestead中,SQLSTATE [HY000] [2002]连接被拒绝。

83

使用Mac OS X和Homestead 2.2.1与Laravel 5.2。

在终端(在我的项目文件夹中的Homestead中),我可以执行php artisan命令以查看所有可用命令。当我尝试运行php artisan migrate时,出现连接错误:
SQLSTATE [HY000] [2002] Connection refused


我已经设置了一个Laravel项目,并进行了这些.env设置。

DB_HOST=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=homestead
DB_PASSWORD=secret

我也尝试过使用localhost作为DB_HOST,以及root作为DB_USERNAME和DB_PASSWORD,以及所有可能的组合!


在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错误。
现在我完全迷失了......


11
你尝试把IP地址从127.0.0.1改成localhost了吗?很久以前我也遇到过类似的问题,这对我有效(现在无法测试,因为不在Mac上)。 - Adam
@Adam 是的,我有(就像我在原始问题中说的那样),但并没有改变任何事情。但还是谢谢你的意见... - nclsvh
1
我的错,我没看到你已经尝试过了。 - Adam
1
你的应用程序正在虚拟机上查找数据库。我假设Sequel Pro可以访问,因为它在主机上。你必须使用实际的计算机IP地址从家庭托管中访问数据库。 - tnash
我正在使用 Mac 和 MAMP 作为本地服务器,在文件 .env 中,我只需将 DB_HOST=127.0.0.1 更改为 DB_HOST=localhost,它就可以正常工作了,谢谢 @Adam。 - Rolly
显示剩余5条评论
32个回答

-2

如果您使用了任何类型的 代理VPN,请关闭它们。这可能是问题所在。


-3

在Ubuntu / Linux上,您可以尝试使用以下命令重新启动mysql:sudo service mysql restart


OP正在使用MacOS。另外,为什么重新启动可以解决这个问题? - Robert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接