Django+Docker+MySQL8.0環境で1156, ‘Plugin caching_sha2_password could not be loaded:

今回はDjango+Docker+MySQL8.0環境で「django.db.utils.OperationalError: (1156, 'Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory’)」というエラーが起きたときの対処法についてご紹介いたします。



Django+Docker+MySQL8.0環境で1156, 'Plugin caching_sha2_password could not be loaded:

Django+Docker+MySQL8.0環境でdocker-compose upを行ったときです。

上記の「django.db.utils.OperationalError: (1156, 'Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory’)」というエラーが起きてしまいました。

MySQL5.7から8.0にバージョンアップしたときに認証方式が変わり、caching_sha2_passwordをサポートしているクライアント、コネクタを使用していないと上記のエラーが発生してしまうようです。

実はcaching_sha2_passwordをサポートしているクライアント、コネクタを使用しなくても上記エラーを解消する方法があります。
それは、caching_sha2_passwordではなくmysql_native_passwordを使用するよう設定することで解決できます。

下記のdefault_authentication.cnfというcnfファイルを作り、mysql-confdというフォルダの中に格納します。

docker-compose.ymlのmysqlコンテナの定義で上記default_authentication.cnfをボリュームとして「/etc/mysql/conf.d」以下に配置しましょう。
下記がその例となります。

これでエラーが解消されるはずです。

終わりに

今回はDjango+Docker+MySQL8.0環境で「django.db.utils.OperationalError: (1156, 'Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory’)」というエラーが起きたときの対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






MySQL

Posted by ちこ