RSA Encryption not supported – caching_sha2_password plugin was built with GnuTLS support がでたときの対処法

Ruby on Rails

原因

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

手っ取り早く、DBに入って認証方法を変えるのが楽です。

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

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のユーザデータが初期化される場合がある様子。

コメント

タイトルとURLをコピーしました