😨

CircleCIで "MYSQL_PASSWORD cannot be used" のエラーになる

2021/03/18に公開

発生したエラー

mysqlのroot userにはMYSQL_PASSWORDは使えません!と怒られました。

2021-03-18 04:47:36+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

Exited with code 1

結論

とりあえずの回避策として、circleci/mysqlではなく、mysqlのimageを使うことでパスできました。

confing.yml
version: 2.1
jobs:
  test_api:
    docker:
      - image: circleci/ruby:2.7.2
        environment:
          RAILS_ENV: test
          DB_HOST: 127.0.0.1
-     - image: circleci/mysql:5.7.33
+     - image: mysql:5.7.33
        environment:
          MYSQL_ROOT_PASSWORD: [パスワード]

ソースコード

MYSQL_PASSWORDは使っていません。

confing.yml
version: 2.1
jobs:
  test_api:
    docker:
      - image: circleci/ruby:2.7.2
        environment:
          RAILS_ENV: test
          DB_HOST: 127.0.0.1
      - image: circleci/mysql:5.7.33
        environment:
          MYSQL_ROOT_PASSWORD: [パスワード]

原因(調査中)

twitterで検索をかけたところ、同じ日に(2021/3/18) 同様のエラーに遭遇しているツイートが数件確認できましたので、circleci/mysqlの仕様変更の可能性があります。
この点についてはまだ調査しきれていないため、詳細をご存知の方がいらっしゃいましたらコメントで教えていただけると助かります。

回避策

imageをcircleci/mysqlからmysqlに変更することで一旦パスできました。
原因と同様ですが、他の対応策をご存知の方がいらっしゃいましたらコメントで教えていただけると助かります。

confing.yml
version: 2.1
jobs:
  test_api:
    docker:
      - image: circleci/ruby:2.7.2
        environment:
          RAILS_ENV: test
          DB_HOST: 127.0.0.1
-     - image: circleci/mysql:5.7.33
+     - image: mysql:5.7.33
        environment:
          MYSQL_ROOT_PASSWORD: [パスワード]

Discussion