我正在尝试设置两个运行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
时,容器已构建,但mysql容器崩溃。在日志中,它说:
ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
我想尝试this post建议的内容,但我甚至无法进入容器,因为它已经崩溃了。有人可以告诉我我能做些什么吗?
答案 0 :(得分:12)
根据此github issue,问题是将MYSQL_USER
设置为root
。它将无法创建第二个用户'root'@'%'
,因为它已存在于users表中。
因此,只需在MYSQL_ROOT_PASSWORD
文件中设置MYSQL_DATABASE
,MYSQL_PASSWORD
和docker-compose.yml
即可解决此问题。