Java通過mysql-connector-java-8.0.11連接MySQL Server 8.0遇到的幾個問題


這次新安裝了一個MySQL數據庫,然后navicat連接數據庫一點問題沒有。

但是通過Java的jdbc連接卻怎么都建立不了連接。

連接MySQL會報錯Unable to load authentication plugin 'caching_sha2_password'

原因是MySQL在8.0后驗證方式由mysql_native_password變為caching_sha2_password,所以連接時會報這個錯。

數據庫用的是Mysql8版本,但工程里面mysql驅動包卻是5.1.37版本。只需修改驅動包為8.0.11版本即可。

而驅動的包也由原來的:mysql-connector-java-5.1.28-bin.jar

換成了:mysql-connector-java-8.0.11.jar。

解決方法:

向項目中導入mysql-connector-java-8.0.11的jar包。

下載地址:https://dev.mysql.com/downloads/file/?id=477058

詳情請見: 如何向IDEA中導入jar包(●ˇ∀ˇ●)

 

因此Mysql8.0連接JDBC驅動需要注意以下幾點:

1,驅動的類換了個名字

Class.forName("com.mysql.cj.jdbc.Driver");

加上useSSL=true或false 

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true", "root", "123456");

加上serverTimezone=GMT

con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&serverTimezone=GMT", "root", "123456");

 

如果是maven引入,則需要由:

<!-- mysql -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.37</version>
</dependency>

改為:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.11</version>
</dependency>

在mybatis逆向工程里面配置改成如下:

        <!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/taobao" userId="root"
            password="aaaaaa">
        </jdbcConnection>


免責聲明!

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



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