ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【mysql】5.7 -> 8.0 アップグレードで SSL モードを無効にして接続

Mysql を 5.7 から、8.0 にアップグレードしたところ、作業後に同様の接続方法を試みたところ以下のエラーになり接続ができませんでした。

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2026 (HY000): SSL connection error: unknown error number

回避策

回避方法は、mysql コマンドの場合は 「--ssl-mode=DISABLED」 をつけるとうまくいきました。

`-ssl-mode`は MySQL5.7 で追加されたオプションです。
MySQL クライアントのバージョン 5.7 からはデフォルトのモードが PREFERRED で MySQL サーバでTLS接続が有効化されている場合は自動的に暗号化された接続になるようです。
MySQL クライアントが 8.0 の場合は –ssl-mode のデフォルトが PREFERRED のため、明示的に指定しなくても接続が暗号化されています。(全環境は暗号化されていなかったのかもしれません)

【mode】 【説明】
DISABLED 暗号化されていない接続を確立します。
PREFERRED サーバが暗号化された接続をサポートしている場合は暗号化された接続を確立し、 暗号化された接続を確立できない場合は暗号化されていない接続にフォールバックします。
REQUIRED サーバーが暗号化された接続をサポートしている場合、暗号化された接続を確立します。 暗号化された接続を確立できない場合、接続の試行は失敗します。
VERIFY_CA REQUIREDに似ていますが、構成されたCA証明書に対してサーバー認証局(CA)証明書をさらに検証します。 有効な一致するCA証明書が見つからない場合、接続の試行は失敗します。
VERIFY_IDENTITY VERIFY_CAに似ていますが、クライアントがサーバーへの接続に使用するホスト名を、 サーバーがクライアントに送信する証明書のIDと照合してホスト名のID検証を追加で実行します。