mysql - 无法连接到数据库 Laravel Sail
问题描述
我正在尝试创建一个简单的 laravel 项目,并且我正在关注 laracast 以使用 Sail 设置项目。该项目运行良好,我能够使用 vendor/bin/sail artisan migrate 进行迁移。
laracast 的下一步是使用 tableplus 连接数据库。但我无法通过这一步。我在 tableplus 中收到此错误:
这是我的 .env:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=csv
DB_USERNAME=root
DB_PASSWORD=
我没有更改 docker-compose 文件中的任何设置,在 docker desktop 中我可以看到 mysql 在端口 3306 上运行并且没有设置密码。
知道如何解决这个问题并连接到数据库吗?
编辑:发现问题。当我运行brew services list
时,看到旧版本的 mysql 仍在运行。停止它,brew services stop mysql
现在我可以连接
解决方案
你应该定义
FORWARD_DB_PORT=3306
在您的 .env 中,这将在该端口上公开 mysql 以进行开发连接。我建议不要在生产中公开这个端口。
https://github.com/laravel/sail/blob/e3d601598e735407070dd50e09ab6e0c68ab32ae/stubs/mysql.stub#L4
推荐阅读
- asp.net-core-webapi - 从 .NET Core Web API 返回错误消息
- php - Postfix 管理员、POSTFIX、PHP、MYSQL、UBUNTU 18.04
- excel - 对特定类别的标签进行网络抓取
- python - Azure - 具有 Oauth 重定向设置的自定义域
- python - 如何在不复制其他学生相同成绩的情况下打印随机成绩列表?
- javascript - 链接映射的 axios/API 调用
- node.js - 使用 apollo 客户端(或其他替代方案)服务器端来获得自动完成和语法高亮
- c - FFTW 和 Wisdom 的签名问题
- c# - 因此,使用 Golfer 对象的代码应该如何通过按名称引用 GolfClub 来要求操作特定的高尔夫球杆
- nginx - NGINX 代理重定向无法正确重定向。405 不允许