発生した事象
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>