【摘要】
之前用旧版本的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,也不需要手动加载驱动了,所以加载驱动的代码,不需要了