docker-compose環境でMySQL8イメージを8.0.36→8.0.40にアップデートしたところ、『mysql error unknown variable ‘default_authentication_plugin=mysql_native_password’』でMySQLコンテナが起動できなくなっていたので解決した経緯をめもします。
原因は旧バージョンでパスワード認証方式を指定していた
–default-autherntication-plugin=mysql_native_password
オプションの廃止に伴い起動できなくなっていたらしいです。MySQL界隈では最近、認知されたエラーでグーグル先生に訊くと
MySQL 8.4-LTSがやってきた&native_passwordに注意
『mysql_native_password』周りで詰まった時の解決方法 がヒットしたので対処法をシェアします。
/etc/mysql/conf.d/my.cnf
- default-authentication-plugin=mysql_native_password
+ mysql_native_password=ON
オプションの構文を mysql_native_password=ONに変更するだけというものですが何回、コンテナ起動してもDockerの設定ファイルのキャッシュが残っていて反映できませんでした。
結果的には、コンテナイメージ、キャッシュを全削除したところうまく行きました。
$ docker rm $(docker ps -aq)
$ docker system prune --volumes
$ docker builder prune -f