JDBC 連接 Mysql 過程中注意事項及各類問題解決方案


在JAVA連接mysql的過程中注意問題如下:

  java連接數據庫的代碼:

package javaDateBaseConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class TestJavaDataBaseConnection {
    public static final String URL = "jdbc:mysql://localhost:3306/testjavadb?useSSL=false";
    public static final String USER = "root";
    public static final String PASSWORD = "Tanhao0508";
    
    public static void main(String[] args) throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        
        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
        
        System.out.println(conn);
        
        Statement stmt = conn.createStatement();
        
        ResultSet rs = stmt.executeQuery("SELECT * FROM students");
        
        while (rs.next()) {
System.out.println(rs.getString(
"name")+" identity:"+rs.getString("identity")); } conn.close(); } }

按照正常的文檔套路來操作時,首先會出現第一個 系統異常: 

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

 

 解決方案:

  這是因為系統在加載類的時候找不到該類里沒有咱們需要用到的jar包:mysql-connector-java 

       所以先下載: https://pan.baidu.com/s/1c1KNjtm 密碼:eyrm   注意下載后先解壓

  之后Eclipse導入外部JAVA包: 

  選擇菜單欄中【Project】->【Properties】->【Java Build Path】命令。

  

 

  

 

 

   

  

 

 

當你完成這些步驟之后,運行你的java程序,你可能會遇到你的第二個 系統異常

Sat Jul 18 16:20:51 CST 2020 WARN: Establishing SSL connection without serve

 解決方案:

  需要設置你的mysql 全局系統等待時間:

  設置: set global wait_timeout = 1814400;

  查看效果:

   

 

 

 

 當你完成這步操作之后,請重啟一下你的Mysql服務器,之后重寫運行你的java程序,你可能會遇到你的第三個 系統異常

WARN: Establishing SSL connection without server's identity verification is not recommended.

解決方案:

  原因是MySQL在高版本需要指明是否進行SSL連接。
  在mysql連接字符串url中加入?useSSL=false 即可,(

    public static final String URL = "jdbc:mysql://localhost:3306/testjavadb?useSSL=false";

  )

 

 當你完成這些步驟之后,運行你的java程序,你可能會遇到你的最后一個 系統異常

java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'.

解決方案:

  在此通過查資料詳情解釋說明下

為了提供更安全的密碼加密,
MySQL8.0的首選默認認證插件是caching_sha2_password,
而不是mysql_native_password

  解決方式或者注意事項:

  1.對於MySQL 8.0的升級,身份驗證插件現有帳戶保持不變,包括’root’@'localhost’管理帳戶的插件

  2.對於新的MySQL 8.0安裝,在初始化數據目錄時(使用 第2.10.1節“初始化數據目錄”中的說明),將 ‘root’@'localhost’創建帳戶,並且該帳戶caching_sha2_password默認使用.

  3.對於新的MySQL 8.0安裝,還想使用之前的密碼認證方式請使用:

 

  當你查看你的Mysql 配置時,你會發現你的首選默認插件樣式全部為 同一個:caching_sha2_password

select host,user,plugin from user;

 

 

   所以修改你的root 默認驗證樣式:

select host,user,plugin from user;
ALTER USER 'root'@'localhost'
  IDENTIFIED WITH mysql_native_password
  BY '你的mysql密碼';

  之后重啟你的Mysql服務器 ,運行java程序,這次就應該沒問題的了.....吧。  

  

 


免責聲明!

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



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