Copy & Paste Engineer

【Docker】Mysql が立ち上がらない(ユーザ設定エラー)

Mysql が立ち上がらない(パスワード設定エラー)

Docker で Mysql が立ち上がらなかったのでメモ。

現象

Docker で Mysql のコンテナ立ち上げ時にうまく立ち上がらなかったので docker-compose logs でログを確認 同じようなログ2種類を確認しました。

[ERROR] [Entrypoint]: MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for
configuring a regular user and cannot be used for
the root user Remove MYSQL_USER="root" and use one of the following to control the root user password:
    - MYSQL_ROOT_PASSWORD
    - MYSQL_ALLOW_EMPTY_PASSWORD
    - MYSQL_RANDOM_ROOT_PASSWORD
[ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
     You need to specify one of the following:
     - MYSQL_ROOT_PASSWORD
     - MYSQL_ALLOW_EMPTY_PASSWORD
     - MYSQL_RANDOM_ROOT_PASSWORD

原因

原因は MYSQL_USER="root"root ユーザのパスワード設定は MYSQL_PASSWORD でするなとの事。

version: '3'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: test_db
      MYSQL_USER: root
      MYSQL_PASSWORD: passw0rd

対処

10行目の様に root ユーザ用のパスワードを追加。 12行目で 通常ユーザを設定します。

version: '3'

services:
  mysql:
    image: mysql:8.0
    container_name: mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: rootpw
      MYSQL_DATABASE: test_db
      MYSQL_USER: user
      MYSQL_PASSWORD: passw0rd

これで問題なく起動できました。