Datagrip 上的通信鏈路故障 SSH 隧道
我現在需要通過 SSH 連接 RDS(本地 -> EC2 -> RDS)。
所以我嘗試通過 Datagrip 上的 SSH 隧道選項連接 MySQL,但是,它無法連接到伺服器。
[08S01] Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
我嘗試了帶有
Standard TCP/IP over SSH
選項的 MySQL Workbench。它運作良好。
TCP/IP over SSH
和之間有區別SSH Tunnel
嗎?還是我做錯了什麼?
這是我的工作台截圖。有用。
這是我的 Datagrip 螢幕截圖。我將主機寫為 RDS 端點,但它失敗了。
請閱讀問題 DBE-13313並嘗試建議的解決方法,問題在於禁用的 TLSv1 協議:
解決方法 #1
我們最近更新了 java ,由於安全原因,我們已經移到
TLSv1
了。jdk.tls.disabledAlgorithms
因此,要取回它,您需要執行以下操作:
- 創建一個
custom.java.security
包含以下內容的文件:jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves
我
TLSv1
從列表中刪除。
- 轉到您的數據源高級選項卡並添加到VM 選項:
-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security
。不要忘記更換${PATH_TO_FILE?}
。- 重啟IDE。
- 你可以連接。
解決方法 #2
如果您正在執行 MySQL 8.0、5.7.28、5.6.46 及更高版本並且您的伺服器配置了 TLSv1.2,您可以在驅動程序中啟用它:打開數據源屬性,切換到高級選項卡並將值設置
enabledTLSprotocols
為TLSv1,TLSv1.1,TLSv1.2,TLSv1.3
由於 MySQL 錯誤,您可能會收到錯誤
bad handshake
,這意味著您不能使用 TLSv1.2,在這種情況下,請禁用此選項並使用解決方法 #1。解決方法 #3
enabledTLSProtocols = TLSv1.1(可選)VM Options = “-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, 包括 jdk.disabled。命名曲線”