254 文字
1 分
RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support がでたときの対処法

原因#

MySQL5.7までの認証プラグインにはmysql_native_passwordがデフォルトで使用されていましたがMySQL8より新たに追加されたcacing_sha2_passwordがデフォルトに変更されましたがクライアント側が対応していないため。

解決法1#

docker-compose.ymlに以下の行を追加すればOKです。すでに構築済みでも大丈夫です。

command: --default-authentication-plugin=mysql_native_password

解決法2#

DBのレコードを書き換える方法です。DB内に入っている値を書き換えるので、一時的な解決方法です。

以下の実行例はdocker-composeで立ち上げている場合

Terminal window
$ docker exec -it <repository_name>-db-1 bash

passwordの部分は任意の文字列に置き換えてください。

# mysql -u root -p
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
> flush privileges;

発生するタイミング#

  • 初期セットアップ時。
  • MySQLのDocker Imageのバージョンを上げたり(あがってしまったり)するとDBのユーザデータが初期化される場合がある様子。
RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support がでたときの対処法
https://blog.teraren.com/posts/rsa-encryption-not-supported/
作者
Yuki Matsukura
公開日
2021-12-18
ライセンス
CC BY-NC-SA 4.0

コメント