LoginSignup
0
0

More than 1 year has passed since last update.

DockerのMySQLの環境変数の変更が反映されない場合の解決方法

Last updated at Posted at 2023-01-14

発生した事象

MySQLに接続するときのパスワードをpassからpasswordに変更しようと思い

docker-compose.yml
version: "3.8"

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: pass
    ports:
      - "3307:3306"
    volumes:
      - db:/var/lib/mysql

volumes:
  db:

から

docker-compose.yml
version: "3.8"

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: password # 変更
    ports:
      - "3307:3306"
    volumes:
      - db:/var/lib/mysql

volumes:
  db:

に変更し、変更後のパスワードであるpasswordで接続しようとしたのですが何故かアクセスできませんでした。

$ mysql -u root -P 3307 -h 127.0.0.1  --password=password
ERROR 1045 (28000): Access denied for user 'root'@'172.21.0.1' (using password: YES)

ビルドし直したりキャッシュの削除も試してみたのですが変更されないままでした。

原因

docker-compose.ymlに記載した

volumes:
  db:

のvolumeに変更前の設定が残っていたらしく、一回volumeを削除しないといけないようでした。

解決方法

docker volume lsコマンドでvolume一覧を確認するとvolumeが作られていることが確認できると思います。

$ docker volume ls
DRIVER    VOLUME NAME
local     sample_db

下記のコマンドでvolumeを削除します。

docker volume rm sample_db

再びdocker volume lsコマンドでvolume一覧を確認するとvolumeが削除されていることが確認できると思います。

$ docker volume ls
DRIVER    VOLUME NAME

volumeの削除完了後docker-compose upでコンテナを起動したとき、今度は変更後のパスワードであるpasswordで接続することが確認できました。

$ mysql -u root -P 3307 -h 127.0.0.1  --password=password
mysql>
0
0
0

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
0
0