日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

linux部署項目, 報數據庫連接不上錯誤

作者:一勺菠蘿丶 更新時間: 2024-01-31 編程語言

問題描述: sprinboot項目, 本地連線上數據庫可以使用, springboot項目中java包的版本是8.0, 線上數據庫是5.7, 但在將項目部署到服務器上的時候發現項目啟動報錯, 于是尋找問題, 發現是useSSL=true導致的

出問題前的鏈接地址:

url: jdbc:mysql://localhost:3306/java-video?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

修改后的

url: jdbc:mysql://localhost:3306/java-video?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8

于是對useSSL=true進行查詢, 以下是對它的描述

當你在MySQL連接字符串中使用useSSL=true時,你告訴JDBC驅動程序嘗試通過SSL(安全套接字層)加密與MySQL服務器之間的連接。但是,這個設置可能會導致一些問題,尤其是當數據庫服務器未正確配置以支持SSL連接時。以下是詳細解釋:

  1. SSL證書問題
    默認情況下,MySQL服務器使用自簽名證書進行SSL連接。自簽名證書不是由任何已知的證書頒發機構簽名的,因此客戶端(在此情況下為JDBC驅動程序)可能不信任它。為解決此問題,你可以:

    • 使用verifyServerCertificate=false在連接字符串中跳過服務器證書驗證。
    • 使用由受信任的CA簽名的證書,并在JDBC連接字符串中提供證書。
  2. 不支持的加密協議或密碼套件
    如你之前的錯誤堆棧顯示,可能出現“無適當的協議”或“密碼套件不適當”的錯誤。這通常意味著客戶端和服務器之間存在加密協議或密碼套件的不匹配。為解決這個問題,你可以檢查服務器和客戶端都支持的協議,并在連接字符串中明確指定它。

  3. 服務器未啟用SSL
    如果MySQL服務器未配置或未啟用SSL支持,但客戶端嘗試建立SSL連接,將導致連接失敗。

  4. 性能考慮
    SSL連接會對性能產生輕微的影響,因為它需要額外的加密和解密步驟。對于高安全性需求的應用來說,這是可接受的,但對于不需要此級別安全性的應用,可能會選擇不使用SSL。

解決方法

  • 如果你不需要加密連接,可以簡單地將useSSL=false設置在連接字符串中。
  • 如果你確實需要加密連接,那么需要確保MySQL服務器已正確配置SSL,并且你的JDBC連接字符串包含所有必要的SSL參數。

結論

在配置MySQL的SSL連接時,很重要的一點是要確保服務器和客戶端都正確配置,并且它們之間的配置是兼容的。這涉及到正確的證書管理、確保雙方都支持的加密協議和密碼套件,以及可能需要的其他設置。正確配置后,SSL可以為MySQL連接提供強大的安全保障。

原文鏈接:https://blog.csdn.net/weixin_39973810/article/details/132389695

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新