用Docker和Docker Compose启动MySQL失败
引起这种情况的原因
MYSQL_ROOT_PASSWORD 是必需的。
Docker编码
docker run -it --name mysql -d mysql
无法启动。
docker run -it --name mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql
开动。
Docker Compose编排
# docker-compose ps
Name Command State
----------------------------------------------------------------
mysql_1_e6c3b5334932 docker-entrypoint.sh mysqld Exit 1
你要是不启动的话我就麻烦了。
> docker-compose logs | findstr mysql
Attaching to mysql_1_bff667044a7f, python_1_9815f4b12db2
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
因为是Windows,所以使用了findstr命令,但如果是Linux,则使用grep命令。
出现了一个错误,数据库没有被初始化并且没有指定密码选项。
mysql:
image: mysql
environment:
MYSQL_DATABASE: dbname
MYSQL_ROOT_PASSWORD: P@ssw0rd
由于这个原因,我已成功地指定数据库名称和密码选项并启动了它。