MySQLが動かない...!
ある昼下がり、ジョブが失敗している。。。
MySQLの起動に失敗したようだ。
手元で起動してみると確かに動かない。
docker run -it --shm-size=1gb -e MYSQL_ROOT_PASSWORD=secret circleci/mysql:5.7.33
#2021-03-18 10:06:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.33-#1debian10 started.
#2021-03-18 10:06:33+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
#2021-03-18 10:06:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.33-1debian10 started.
#2021-03-18 10:06:33+00:00 [ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_PASSWORD cannot be #used for the root user
# Use one of the following to control the root user password:
# - MYSQL_ROOT_PASSWORD
# - MYSQL_ALLOW_EMPTY_PASSWORD
# - MYSQL_RANDOM_ROOT_PASSWORD
実験
公式のイメージを動かしてみる
docker run -it --shm-size=1gb -e MYSQL_ROOT_PASSWORD=secret mysql:5.7.33
動いた。rootでも疎通できる。
環境変数を比べる
どうやら公式は MYSQL_USER=root
を使わずとも root を作成するらしい。
そして、 circleci/mysql
は勝手に MYUSQL_USER=root
を行っているようだ。
docker run -it --shm-size=1gb mysql:5.7.33 env
#MYSQL_MAJOR=5.7
#HOSTNAME=c8102f95becf
#PWD=/
#HOME=/root
#MYSQL_VERSION=5.7.33-1debian10
#GOSU_VERSION=1.12
#TERM=xterm
#SHLVL=0
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
docker run -it --shm-size=1gb circleci/mysql:5.7.33 env
#MYSQL_MAJOR=5.7
#MYSQL_ALLOW_EMPTY_PASSWORD=true
#HOSTNAME=7ab057cc816f
#PWD=/
#MYSQL_USER=root
#HOME=/root
#MYSQL_VERSION=5.7.33-1debian10
#GOSU_VERSION=1.12
#MYSQL_HOST=127.0.0.1
#TERM=xterm
#MYSQL_ROOT_HOST=%
#SHLVL=0
#MYSQL_DATABASE=circle_test
MYSQL_USER=root
がユーザ作成のコンフリクトを起こしている説
以下を実行すると cicrcleci/mysql
と同様の事象が起きた。
TODO: error ログを読む。
docker run -it --shm-size=1gb -e MYSQL_USER=root -e MYSQL_ROOT_PASSWORD=secret mysql:5.7.33
MYSQL_USER
を空にすれば回避できるのでは...?
動いた...!
docker run -it --shm-size=1gb -e MYSQL_USER= -e MYSQL_ROOT_PASSWORD=secret circleci/mysql:5.7.33
おわり
MYSQL_USER
を空にしたら動きますね。