Fon*_*sVC 7 mysql laravel laravel-8 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=
Run Code Online (Sandbox Code Playgroud)
我没有更改 docker-compose 文件中的任何设置,在 docker 桌面中我可以看到 mysql 在端口 3306 上运行并且没有设置密码。
知道如何解决此问题并连接到数据库吗?
编辑:发现问题。当我运行时brew services list,看到旧版本的 mysql 仍在运行。停止它,brew services stop mysql现在我可以连接
Ben*_*ing 15
我发现我必须删除我的 docker 卷,因为我的用户名/密码错误,可以通过以下方式完成:
sail down -vsail up -dsail artisan config:cachesail artisan migrateHan*_*ans 10
我在 sail 之外的笔记本电脑上安装了 mysql,所以这对我有用(将其添加到 .env 后,您需要重新启动 sail,以便它可以在 docker 中生效):
.env:
FORWARD_DB_PORT=3307
对于 TablePlus,您实际上只需要名称、主机、修改的端口和用户/密码(sail 默认为 root,无密码)。输入与 .env 相同的数据库名称:DB_DATABASE=
如果您查看您的docker-compose.yml,您会看到默认设置为 3306 并且这会覆盖它(您无需在此处执行任何操作,仅供参考):
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
(...etc...)
Run Code Online (Sandbox Code Playgroud)
你应该定义
FORWARD_DB_PORT=3306
Run Code Online (Sandbox Code Playgroud)
在您的 .env 中,这将在该端口上公开 mysql 以进行开发连接。我建议不要在生产中公开这个端口。
https://github.com/laravel/sail/blob/1.x/stubs/docker-compose.yml#L34