【摘要】
之前用舊版本的MySQL直接JDBC連接沒有問題,這次想回顧下mybatis一直出現連接問題,為了排除問題,先試下JDBC連接,也會有問題,把碰到的問題記錄下。
【代碼】
代碼很簡單
import java.sql.*;
public class JDBC {
public static void main(String[] args) {
try {
Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mysql?verifyServerCertificate=false&useSSL=false&serverTimezone=UTC","root","admin123");
System.out.println("");
} catch (Exception e) {
System.out.println(e);
}
}
}
【問題】
Wed Jul 18 10:01:50 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
這個直接翻譯就是SSL連接的問題,MySQL5.7開始就用SSL連接,需要加配置項verifyServerCertificate=false&useSSL=false
com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
jdk和驅動不匹配,把mysql-connector-java換成最新8.0.11,jdk換成1.8,解決
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
時區的問題serverTimezone=UTC
最新版本的mysql-connector-java,也不需要手動加載驅動了,所以加載驅動的代碼,不需要了