MySQL 8+ の caching_sha2_password エラーの解決方法

MYSQLチュートリアル

MySQL 8+ ではデフォルトの認証プラグインが caching_sha2_password に変更されましたが、これにより特定のツールや環境で接続エラーが発生することがあります。特に、Sequel Pro などのツールでは問題が発生することが多いです。この問題を解決するために、以下の手順を試してみてください。

方法 1: ユーザーの認証プラグイン変更

MySQL に接続する

MySQL クライアントまたはターミナルから MySQL に接続します。以下のコマンドを使用して、root ユーザーで MySQL にログインします:

mysql -u root -p

パスワードを求められたら、root のパスワードを入力します。

ユーザーの認証プラグインを変更する

ALTER USER コマンドを使用して、認証プラグインを mysql_native_password に変更します。以下のコマンドを実行してください:

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

ここで、yourusername を実際のユーザー名に、yourpassword を新しいパスワードに置き換えます。

変更を反映する

変更を適用するために、特に明示的なコマンドは不要ですが、他の設定変更を行った場合は FLUSH PRIVILEGES コマンドを実行して変更を反映させることができます:

FLUSH PRIVILEGES;

方法 2: MySQL 5.7 を使用する

Sequel Pro やその他のツールでの互換性を確保する最も簡単な方法は、MySQL 5.7 を使用することです。以下のコマンドを使って Docker コンテナで MySQL 5.7 を起動します:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7

方法 3: MySQL 8+ を使用し、認証プラグインを変更する

MySQL 8+ を使用する場合、認証プラグインを mysql_native_password に変更することで接続問題を回避できます。以下の手順で進めてください:

Docker コンテナの起動

mysql_native_password をデフォルトの認証プラグインとして設定して MySQL 8+ コンテナを起動します:

docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password

Docker コンテナに接続

コンテナ内の MySQL インスタンスに接続します:

docker exec -it mysql1 bash
mysql -u root -p

ユーザーの認証プラグインを変更

既存のユーザーの認証プラグインを mysql_native_password に変更します:

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';

MySQL 8+ のデフォルト認証プラグイン caching_sha2_password に関連する接続問題を解決するための方法を紹介しました。

購読
通知
0 Comments
Inline Feedbacks
View all comments