タイトルの件
MySQL8.0に作られたテーブルをMySQL5.7のFEDERATEDテーブルから参照すると以下のようなエラーが出る場合があります。
ERROR 1429 (HY000): Unable to connect to foreign data source: SSL connection error: socket layer receive error
ERROR 1429 (HY000): Unable to connect to foreign data source: SSL connection error: unknown error number
ERROR 2026 (HY000): SSL connection error: socket layer receive error
オチから言うと、これもまたcaching_sha2_passwordによる影響です。
ドキュメント参照
ドキュメントのcaching_sha2_password-Compatible クライアントおよびコネクタを見てみると、以下のような記載があります。
caching_sha2_password について知るために更新されたクライアントまたはコネクタが使用可能な場合は、caching_sha2_password をデフォルトの認証プラグインとして構成された MySQL 8.0 サーバーに接続するときに互換性を確保するための最善の方法です。
次のクライアントおよびコネクタは、caching_sha2_password をサポートするようにアップグレードされています:
つまり、5.7.22以下(正確には8.0.3以下も含むが、使う人いないだろうし)のMySQL ServerでFEDERATEDテーブルを作った場合、そこから8.0のテーブルを参照時にcaching_sha2_passwordの影響でエラーが出ます。
回避方法
以下のいずれかになります。
セキュリティ的にmysql_native_password認証を使うのをお勧めするのもなあ…と思いつつ、でも、既存環境をできるだけいじれない人はしょうがないですね。
その場合はFEDERATEDテーブルを作り直す必要があります。
アップグレードの場合は敷居高いかもしれませんが、安全に使うためにはご検討ください。