MySQL - 8.0 を MySQL Workbench に接続すると、次のエラーが発生します。
認証プラグイン 'caching_sha2_password' をロードできません: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): イメージが見つかりません
他のクライアントツールでも試しました。
これに対する解決策はありますか?
MySQL - 8.0 を MySQL Workbench に接続すると、次のエラーが発生します。
認証プラグイン 'caching_sha2_password' をロードできません: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): イメージが見つかりません
他のクライアントツールでも試しました。
これに対する解決策はありますか?
このようにパスワードの暗号化を変更できます。
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
以下の Alter コマンドを使用してユーザーを変更することにより、ユーザーのパスワードの暗号化を変更できます。
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
また
このエラーは、古いパスワード プラグインで機能させることで回避できます。
まず、Linux の場合は my.cnf ファイル、Windows の場合は my.ini ファイルで認証プラグインを変更します。
[mysqld]
default_authentication_plugin=mysql_native_password
mysql サーバーを再起動して変更を有効にし、MySQL 経由で任意の mysql クライアントに接続してみます。
それでも接続できず、次のエラーが表示される場合:
Unable to load plugin 'caching_sha2_password'
これは、ユーザーが上記のプラグインを必要としていることを意味します。そのため、デフォルトのプラグインを変更した後、create user または grant コマンドで新しいユーザーを作成してみてください。その後、新しいユーザーはネイティブ プラグインを必要とし、MySQL に接続できるようになります。
ありがとう
上記の回答とほとんど同じですが、単純なクエリである可能性があります。MySQL のアップグレード後に、休止状態とともにスプリング ブート アプリケーションでこのエラーが発生していました。DB に対して以下のクエリを実行して、新しいユーザーを作成しました。これは、最新の適切な認証 caching_sha2_password の代わりに sha256_password を使用するための一時的な回避策だと思います。
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';
GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';
別のコンピューターのテキストベースの MySQL クライアントから MySQL サーバーに接続しようとしている場合 (Docker であるかどうかに関係なく)
ここでのほとんどの回答には、デスクトップ クライアントからの接続が含まれるか、古い認証方法に切り替えるように求められます。MySQL クライアント (テキストベース) に接続する場合は、Docker コンテナー内の Debian Buster で動作するようにしました。
apt システムと wget がセットアップされているとします。次の手順を実行します。
sudo apt-get update
sudo apt-get install lsb-release -y
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
をクリックして、必要なオプションを選択します。私の場合、MySQL Tools & Connectors
有効にするだけで済みます。sudo apt-get update
sudo apt-get install mysql-client -y
MySql のダウンロードとインストール中に従来のパスワードを使用してみてください。または、Santhosh Shivan が Mac OS 用に投稿した方法に従ってください。