MySQL 8.4ではmysql_native_password認証プラグインが無効になった

最近、DockerでMySQLが起動しなくなる問題が発生しました。
以下のエラーメッセージが表示されました。

[ERROR] [MY-000067] [Server] unknown variable 'default-authentication-plugin=mysql_native_password'.

このエラーは、efault-authentication-plugin=mysql_native_passwordという変数が不明であるために、MySQLサーバが起動に失敗していることを示しています。

原因は、DockerのMySQLバージョンがlatestになっていたため、自動的にMySQL 8.4に更新されたことです。

MySQL 8.4の変更点

MySQL 8.4では mysql_native_password 認証プラグインがデフォルトで無効になりました。

この変更により、古い認証方式を利用している場合には、MySQLサーバの起動に失敗する可能性があります。

解決策

MySQL 8.4では mysql_native_password 認証プラグインがデフォルトで無効になりましたが、削除されたわけではありません。

mysql_native_passwordを引き続き使用するためには、MySQLの設定ファイルに以下の設定を追加する必要があります。

[mysqld]
default_authentication_plugin=mysql_native_password

または、MySQLサーバを起動する際に以下のオプションを指定します。

--default-authentication-plugin=mysql_native_password

推奨される移行方法

長期的には、mysql_native_passwordから caching_sha2_password への移行が推奨されます。

caching_sha2_passwordはセキュリティが強化されており、MySQLの最新バージョンでデフォルトの認証プラグインとなっています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください