0

I'm trying to create a test database for my using Laravel and Sail. Following this post, I updated my docker-compose file with:

    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

In my .env file I have:

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

However, when I run sail up, I get:

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'@'%'

Any thoughts on why the build is failing?

Eric
  • 1,209
  • 1
  • 17
  • 34
  • 1
    Use some other user. `MYSQL_ROOT_PASSWORD` is already there for setting the `root` account. So `MYSQL_USER` should be a non root user – Tarun Lalwani Mar 13 '21 at 18:33

1 Answers1

1

Your usernames can not be root, there is already an root user in MySql, so when you insert your user it already exists.

DB_USERNAME=youruser
DB_PASSWORD=password

TEST_DB_USERNAME=testuser
TEST_DB_PASSWORD=testpassword
mrhn
  • 17,961
  • 4
  • 27
  • 46