MySQLを使用しているアプリケーションをサーバーに発行すると、初回のみMySQLのデータに接続できない現象が発生します。MySQL Workbenchなどのツールやコマンドで一度でも接続すると、正しく接続できるようになります。
なお、発行したアプリケーションの外部データベースの接続先を、MySQL以外(SQL Serverなど)からMySQLに変更するような場合も、同様に初回のみMySQLのデータに接続できない現象が発生します。
これにより、例えば、サーバー管理ポータルの[設定]ー[ユーザーアカウント情報データベースの構成]でMySQL以外からMySQLに変更し「設定の保存」をクリックすると、データベースに接続できないため応答がない状態になる問題が発生します。
原因
この問題は、MySQL8.0から適用された規定の認証が原因となっています。
MySQL8.0では「caching_sha2_password」という認証プラグインが既定になり、SSL/TLS接続もしくはRSA暗号化通信を行なっていない環境下で、SHA2のパスワードのキャッシュが作られていないユーザーのアクセスが失敗するようになりました(MySQL Workbenchなどのツールやコマンドで一度でも接続すると次回は成功するのはキャッシュが作られるためです)。
このため、MySQL8.0のサーバーを再起動しForguncyからMySQLに接続すると、MySQLコネクタにおいて、RSA 公開キーの取得ができず認証に失敗します。
詳細は、以下の外部サイト(英語)を参照してください。
https://mysqlconnector.net/troubleshooting/retrieval-public-key/
対策
以下のいずれかを検討してください。
- 外部データベースの接続文字列に、"allowPublicKeyRetrieval=true"を追加します。
- 画像のように[データ]ー[接続の管理]から「接続設定」の「詳細プロパティ画面」を表示し、「Allow Public Key Retrieval」を「True」に指定します。