Sequel ProでMySQL8.0以降を使用して、DockerからアプリケーションからMySQLをつなげるときにはまったこと
問題発生
Dockerを使ってアプリケーション(Laravelなど)からMySQLに接続する(php artisan migrateなどで)時に、
接続できません!!
とターミナルで怒られてしまったのですが、
Sequel Proを見ても動いているし、
MySQLのコンテナに入っても動いているので原因がわからず、
envファイルが違うのかなんなと原因究明していて迷走していたので記事にしました。。。
結論
MySQLの認証方式が「mysql_native_password」ではなく、なぜか「caching_sha2_password」を使う必要があったため。
ただ、Sequel Proでは「caching_sha2_password」使えないから「mysql_native_password」を使えよと怒られたので、
使ってみたんですが、この場合はアプリケーションとMySQLは接続できたのでSequel Proを動かしてみたら以下のように怒られてしまいました。
→Sequel Proで使うために「mysql_native_password」を使用したからこんなことになってしまったのです。
多分MySQL8.0以降を使うならMySQL Workbenchとか別のもの使った方がいいのか?
MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
まとめ
- MySQL8.0.4以降 のログイン認証方式は caching_sha2_password がデフォルト
- PHP 7.1.16, 7.2.4 以降のバージョンから caching_sha2_password に対応しているので「caching_sha2_password」をそのまま利用する
- しかし、Sequel Pro Nightly buildでは「caching_sha2_password」を使用できない
以上、Sequel ProとMySQL8.0以降を使用する機会があったらご注意ください。(Sequel Pro不具合多いし、MySQL Workbench使った方がいいのかな...)
ほんと環境設定とかで止まるのが辛いです。
参考文献
https://www.suzu6.net/posts/256-mysql8-pdomysql-caching_sha2_password/
https://qiita.com/ucan-lab/items/3ae911b7e13287a5b917
https://qiita.com/ucan-lab/items/b68db1db931c954da921
Author And Source
この問題について(Sequel ProでMySQL8.0以降を使用して、DockerからアプリケーションからMySQLをつなげるときにはまったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/haramatsuryota/items/450e7ad600cc01f94861著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .