Docker mysql错误1396(HY000):操作CREATE USER失败'root'@'%'

我想设置两个容器之一运行Python,另一个MySQL。 这是我docker-compose.yml文件:

 version: '3' services: python: restart: always build: ./budget/dockerfiles/python/ ports: - "5000:5000" links: - db depends_on: - db volumes: - ./budget/:/app:z entrypoint: - python - -u - /app/run.py db: build: ./budget/dockerfiles/mysql/ environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: database-name MYSQL_USER: root MYSQL_PASSWORD: password volumes: - ./Dump.sql:/db/Dump.sql:z - ./Dump_Test.sql:/db/Dump_Test.sql:z - ./big_fc.sql:/db/big_fc.sql:z ports: - "3306:3306" 

但是,当我运行docker-compose up -d --build ,容器被build立,但是mysql容器崩溃。 在日志中,它说:

 ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%' 

我想尝试这个post的build议,但是我甚至无法进入容器,因为它是坠毁的。 有人能告诉我我能做什么吗?

根据这个github问题 ,问题是将MYSQL_USER设置为root 。 它将无法创build第二个用户'root'@'%'因为它已经存在于users表中。

因此, MYSQL_PASSWORDdocker-compose.yml文件中设置MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_PASSWORD就可以解决这个问题。