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_PASSWORD
在docker-compose.yml
文件中设置MYSQL_ROOT_PASSWORD
, MYSQL_DATABASE
和MYSQL_PASSWORD
就可以解决这个问题。