![](/img/trans.png)
[英]Connection Refused while Runing Laravel Dusk with Laravel Sail
[英]Laravel Sail Database Connection Refused Error
我在 laravel 8 中创建了一个新的 laravel 项目。我已经正确设置了 Sail 安装,在本地数据库连接一切正常,但是当我尝试使用 Sai 连接我的数据库时,它给了我一个错误
SQLSTATE[HY000] [2002] 连接被拒绝(SQL: select * from information_schema.tables where table_schema = laravel8 and table_name = migrations and table_type = 'BASE TABLE')
我已经清除了我的配置和缓存文件。
我正在研究同样的问题并发现了这一点。
https://github.com/laravel/sail/blob/1.x/src/SailServiceProvider.php#L31
该代码显示了一个由 laravelsail- sail:install
添加的工匠命令,它用服务名称覆盖 your.env 文件主机变量。
我将DB_HOST
从127.0.0.1
更改为mysql
并已修复
在我的 docker 中创建第二个风帆项目后,我遇到了同样的问题。 它没有(仍然没有)接受帆用户名或密码,但我可以 go 用 root 给我你上面给出的错误。 我转到桌面 Docker 应用程序,单击运行容器,找到 mysql 部分并运行 CLI,输入mysql
然后运行查询CREATE DATABASE yourdatabasename;
迁移运行得非常好。
将DB_USERNAME从 Sai 更改为root对我有用。 我猜帆没有所需的特权。
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=database
DB_USERNAME=root # changed from sail
DB_PASSWORD=password
如果你想在不同的端口运行 mysql 例如 3307 如下
ports:
- 3307:3306
您应该像这样将 FORWARD_DB_PORT 环境变量添加到 .env 文件中
DB_PORT=3306 // this is for container port
FORWARD_DB_PORT=3307 // this is for local port
也许你应该匹配.env.testing 的环境变量,因为正如willpercey-gb 所说, sail:install
命令更新.env 的环境变量,而不是.env.testing 的环境变量。
首先停止使用 brew 的所有服务,尤其是 MySQL
brew services stop MySQL
在您的 docker-yaml 文件中:
laravel.test
ports:
- '70:80'
mysql:
ports:
- '3456:3306'
现在运行您的风帆工匠迁移命令。
这应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.