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