記事は2回修正されており、タイミングが乱れる可能性があります、ごめんなさい!
どうしたの:
先にプロジェクトを受け取ったときにJDK8u311をインストールしました.プロジェクトを開始すると、最初に警告メッセージが表示されました:
警告: サーバーの ID 検証なしで SSL 接続を確立することはお勧めしません。MySQL 5.5.45+、5.6.26+、および 5.7.6+ の要件によると、明示的なオプションが設定されていない場合、デフォルトで SSL 接続を確立する必要があります。SSL を使用しない既存のアプリケーションに準拠するために、verifyServerCertificate プロパティは「false」に設定されています。useSSL=false を設定して明示的に SSL を無効にするか、useSSL=true を設定してサーバー証明書検証用のトラストストアを提供する必要があります。
その後、次のログにエラー メッセージが見つかりました。
適切なプロトコルがありません (プロトコルが無効になっているか、暗号スイートが不適切です)
: 適切なプロトコルがありません
このような問題は以前にも出ていました.通常は設定ファイルのmysqlのURLに「useSSL=false」を追加するのが私の解決策ですが、今回のプロジェクトはApolloの設定センターを利用しており,プロジェクト起動時に設定ファイルを選択しています. 「test」の設定ファイル。
プロジェクトが開始されると、デフォルトで "development" 設定ファイルが使用されます. 2 つの開始時に使用される Apollo 設定センターは次のとおりです:
開発 —> ローカル構成ファイルの
テスト —> Apollo Configuration Center によって取得
最初はこの問題に気付かなかったので、JDK バージョンに注意を向けました。元の JDK8u181 バージョンは問題がなかったので、この問題を解決するために下位の JDK バージョンを使用することにしました。
当時は前回のバージョンのJDK8が正常に使える理由が分からなかったのですが、今回は動かなかったので、いくつかテストを行いました。
JDK8u301 を使用して「開発」環境を起動することは可能ですが (現時点では 311 ではありませんが、同じ問題が存在します)、「テスト」環境をテストすることはできません。ファイルの内容に一貫性があることがわかりました。これは奇妙です。
その後、Apollo 構成センターの問題をすぐに思いつき、ログを確認したところ、上記の表の結果が得られました。この時点で、真相が明らかになりました。
「test」を選択すると、設定センターに接続して設定を取得しますが、設定センターのymlファイルに「useSSL=false」が追加されず、ローカル設定ファイルが有効になりません!
Apollo 構成センターで構成ファイルを変更すると、すべて正常に動作します。
最後に、考えられる解決策は 3 つあります。
- WindowsもMacもダウングレードすることで解決できます.MacがAppleチップならZulu JDKを使っているのかもしれません.Zuluは古いバージョンのJDK8を提供していませんが,新しいバージョンのMacには翻訳があるので,それも可能です.公式Javaをインストールしてインストール 旧バージョン、個人テストの小さいバージョンは221以下で正常に使用でき、311以上でも問題は変わらず。Mac では公式の JDK8u202 に切り替え、Windows では JDK8u211 に切り替えました。
- バージョンを切り替えたくない場合は、Zulu JDK によって調整された実行速度が必要です。次に、上記の最初の図に記載されているセキュリティ ファイルの「SSLv3」フィールドを削除し、プロジェクトを再起動すると、その効果も得られます。達成!
- URL の後に「useSSL=false」を追加します。
以下は、JDK8 の最近のいくつかのバージョンと以前のバージョンとのプロトコルに関する相違点です
。 security
したがって、このファイルを変更することによっても効果が得られます。
バイバイ!