繁体   English   中英

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_HOST127.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM