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