laravel - 使用 Laravel 帆创建测试数据库
问题描述
我正在尝试为我使用 Laravel 和 Sail 创建一个测试数据库。在这篇文章之后,我更新了我的 docker-compose 文件:
mysql:
image: 'mysql:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping"]
mysql_test:
image: "mysql:8.0"
environment:
MYSQL_ROOT_PASSWORD: "${TEST_DB_PASSWORD}"
MYSQL_DATABASE: "${TEST_DB_DATABASE}"
MYSQL_USER: "${TEST_DB_USERNAME}"
MYSQL_PASSWORD: "${TEST_DB_PASSWORD}"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
networks:
- sail
在我的 .env 文件中,我有:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=real_database
DB_USERNAME=root
DB_PASSWORD=root
TEST_DB_CONNECTION=mysql
TEST_DB_HOST=mysql_test
TEST_DB_PORT=3306
TEST_DB_DATABASE=test_database
TEST_DB_USERNAME=root
TEST_DB_PASSWORD=root
但是,当我扬帆起航时,我得到:
mysql_test_1 | 2021-03-13 17:18:10+00:00 [Note] [Entrypoint]: Creating database test_database
mysql_test_1 | 2021-03-13 17:18:10+00:00 [Note] [Entrypoint]: Creating user root
mysql_test_1 | ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'
关于为什么构建失败的任何想法?
解决方案
您的用户名不能是 root, 中已经有一个 root 用户MySql
,所以当您插入您的用户时,它已经存在。
DB_USERNAME=youruser
DB_PASSWORD=password
TEST_DB_USERNAME=testuser
TEST_DB_PASSWORD=testpassword
推荐阅读
- visual-studio - 在 Visual Studio 异常设置中是否有启用/禁用“公共语言运行时异常”的键盘快捷键?
- excel - 从运行任何事务生成的 Excel 电子表格中访问数据
- powershell - Vsts 将变量作为对象数组传递
- excel - 如何使用 ISBLANK 将数据填充到空单元格中?
- dask - 监控 dask-xarray 性能
- ios - Alamofire 5 任何字典
- clojure - 在 clojure 中,对数据执行一系列测试功能的惯用方法是什么,每个功能都有副作用?
- python - 如何让 PyOpenGL 的标题显示中文
- c# - 如何从后面的代码检查 CheckedListBox 中的项目
- azure-data-factory - Azure 数据工厂 v1 管道未启动