Jdbc Driver驅動和ServerTimeZone時區的的問題


一.JDBC驅動的版本號以及名稱問題

區別:

  com.mysql.jdbc.Driver 是 mysql-connector-java 5中的

  com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上的版本中的

 

注意,我這里使用的是springboot2.1.1版本,在pom.xml文件中整合mysql后自動引入的mysql-connector-java版本是8.x,因此需要使用com.mysql.cj.jdbc.Driver 這個驅動

如圖:

    <!-- springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <!-- 省略其他依賴-->
    
    <!-- mysql 這里沒有顯示的指定版本,默認集成的版本是8.x-->
    <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
    </dependency>      

 

 

注意:如果使用 com.mysql.jdbc.Driver,項目啟動時,控制台會報錯,表示該驅動已經過時

 

 

二.ServerTimeZone時區的問題

在設定時區的時候,如果設定serverTimezone=UTC,會比中國時間早8個小時,如果在中國,可以選擇Asia/Shanghai或者Asia/Hongkong,例如:

url:jdbc:mysql://localhost:3306/mango?serverTimezone=Asia/Shanghai&useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=utf-8

注意:

   如果在url這里不設置時區,則可能報錯

 

 

三.服務器直連mysq問題

 

 

不推薦不使用服務器身份驗證來建立SSL連接。SSL – Secure Sockets Layer(安全套接層)


如果未明確設置,MySQL 5.5.45+, 5.6.26+ and 5.7.6+版本默認要求建立SSL連接。


為了符合當前不使用SSL連接的應用程序,verifyServerCertificate屬性設置為’false’。或者使用autoConnect=true顯示的支持直連
如果你不需要使用SSL連接,你需要通過設置useSSL=false來顯式禁用SSL連接
如果你需要用SSL連接,就要為服務器證書驗證提供信任庫,並設置useSSL=true



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM