我已经在laravel8中创建了一个新的laravel项目。我已经正确地设置了Sail安装,本地数据库连接的一切工作正常,但当我尝试使用sail连接我的数据库时,它给了我一个错误
SQLSTATE[HY000] [2002]连接拒绝(SQL:select * from information_schema.tables where table_schema = laravel8 and table_name = migrations and table_type = 'BASE TABLE')
我已经清除了我的配置和缓存文件。
7条答案
按热度按时间vu8f3i0k1#
我在研究同样的问题,发现了这个。
https://github.com/laravel/sail/blob/7457004969dd62fa727fbc596bb2accccb1409a5/src/SailServiceProvider.php#L31
代码显示了laravel sail -
sail:install
添加的artisan命令,该命令用服务名称覆盖您的.env文件主机变量。我将
DB_HOST
从127.0.0.1
更改为mysql
,它被修复了mysql
而不是地址 *0mkxixxg2#
在cmd上运行以下命令
你会得到类似的回应:
]
复制“
Gateway
”IP地址,并在.env
文件中替换为DB_HOST
值。它将工作shyt4zoc3#
如果你想在不同端口运行mysql,例如下面的3307
你应该像这样将FORWARD_DB_PORT环境变量添加到.env文件中
vohkndzv4#
将DB_USERNAME从sail更改为root对我来说很有效。我猜sail没有所需的权限。
z9gpfhce5#
在我的docker中创建第二个sail项目后,我遇到了同样的问题。它不接受(仍然不接受)sail用户名或密码,但我可以用root用户进入,这给了我上面给出的错误。我去了桌面Docker应用程序,点击运行容器,找到mysql部分并运行CLI,键入
mysql
,然后运行查询CREATE DATABASE yourdatabasename;
迁移运行得很好。rjzwgtxy6#
也许您应该匹配.env.testing的环境变量,因为正如willpercey-gb所说,
sail:install
命令更新.env的环境变量,而不是. env. testing的环境变量。kgqe7b3p7#
首先,停止所有使用brew的服务,尤其是MySQL
在docker-yaml文件中:
现在运行您的帆工匠迁移命令。
这个应该能解决你的问题