LoginSignup
20
12

More than 3 years have passed since last update.

CircleCIでMySQLが動かなくなったので暫定対処

Last updated at Posted at 2021-03-18

本日11時ごろ? あたりからCircleCIで以下のようなエラーが起こりMySQLが起動しなくなりました。

2021-03-18 03:21:57+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イメージのバージョンアップによるものらしいです。
今回はちょっと脳死で暫定対処したので、その方法を紹介します。

2021/03/19追記

こちらの問題はすでに解決済みで、現在は作業不要です。
また、こちらの記事では不具合の内容としてMYSQL_ALLOW_EMPTY_PASSWORDが使えなくなったと記載しておりましたが、実際にはMYSQL_USER:userを指定しないとエラーになる。というのが正でした。

解決方法

① mysqlのDocker imageのバージョンを固定する
動いてた時のバージョンに固定することで、対処することができます。

② パスワードを使う方法に設定を変更する
今回は「②」の方法を選びました。
詳細は以下です。

パスワードを使う方法に設定を変更する

公式のサンプルを参考にします。
https://circleci.com/docs/ja/2.0/postgres-config/#mysql-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BE%8B

スクリーンショット 2021-03-18 12.52.43.png

上記の環境変数の書き方を参考に設定ファイルを書き換えます。
アプリケーション側も、DB接続設定を変更します。

設定前後の設定

変更前

jobs: > [job-name]: > environment: > MYSQL_ALLOW_EMPTY_PASSWORD: true

変更後

jobs: > [job-name]: > image: : circleci/mysql:8.0 > environment: > MYSQL_ROOT_PASSWORD: rootpw
jobs: > [job-name]: > image: : circleci/mysql:8.0 > environment: > MYSQL_DATABASE: circle_test
jobs: > [job-name]: > image: : circleci/mysql:8.0 > environment: > MYSQL_USER: user
jobs: > [job-name]: > image: : circleci/mysql:8.0 > environment: > MYSQL_PASSWORD: passw0rd
  • MYSQL_ALLOW_EMPTY_PASSWORDが動かなかったのでパスワードを使う方式に変更
  • enviromentを書く場所をドキュメントに合わせるため変更

以上です。

20
12
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
12