DockerでMySQLとWordPressを立ち上げたところ、認証関連のエラーが発生しました。
エラー内容
MySQL Connection Error: (2054) The server requested authentication method unknown to the client
原因
MySQL8から新しい認証方式が採用されたため、そのことが原因で認証に失敗しているようです。
対策
この mysql 8 new authentication method caching_sha2_password | github で対策がコメントされていたので紹介します。
認証オプションとして下記を設定し、旧来の認証方式に戻すことで解決できるようです。
--default-authentication-plugin=mysql_native_password
オプションは、docker-compose.yml で設定できます。
docker-compose.ymlファイル
version: ‘3’ services: mysql: image: mysql:latest command: --default-authentication-plugin=mysql_native_password env_file: .env
.envファイル
MYSQL_ROOT_PASSWORD=pass
上記の設定で docker-compose up
したら解決しました。
バージョンアップには新しさへの期待がありますが、同時に意図しない結果を招く怖さがあります。