1. 程式人生 > 實用技巧 >JDBC 連線 Mysql 過程中注意事項及各類問題解決方案

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程式,這次就應該沒問題的了.....吧。