【问题标题】:Creating test database with Laravel sail使用 Laravel 帆创建测试数据库
【发布时间】:2021-03-14 04:59:32
【问题描述】:

我正在尝试为我使用 Laravel 和 Sail 创建一个测试数据库。在this post 之后,我更新了我的 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'@'%'

关于构建失败的原因有什么想法吗?

【问题讨论】:

  • 使用其他用户。 MYSQL_ROOT_PASSWORD 已经用于设置 root 帐户。所以MYSQL_USER应该是非root用户

标签: laravel docker


【解决方案1】:

你的用户名不能是root,MySql中已经有root用户,所以当你插入你的用户时它已经存在了。

DB_USERNAME=youruser
DB_PASSWORD=password

TEST_DB_USERNAME=testuser
TEST_DB_PASSWORD=testpassword

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 2018-09-03
    • 2023-01-28
    • 2017-09-26
    • 2018-03-25
    • 2015-06-13
    • 2016-06-15
    相关资源
    最近更新 更多