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.5.45 +,5.6.26 +和5.7.6+要求SSL连接必须为如果未设置显式选项,则默认情况下建立。 为了遵守与不使用SSL的现有应用程序的verifyServerCertificate属性设置“false”。 您需要明确禁用SSL通过设置useSSL = false或设置useSSL = true并为服务器证书验证。
所以只要在url后面加上useSSL = false就行了,我这里定义了一个私有静态常量
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Statement;
/**
* 数据库文件
* @ClassName: JDBCTest01
* @Description: TODO
* @author: asus
* @date: 2020年1月3日 下午4:39:37
*/
public class JDBCTest01 {
private static final String URL = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false";
private static final String USER = "root";
private static final String PASSWORD = "Aa123456";
public static void main(String[] args) {
Connection conn = null;
String sql = "create table if no exists Table";
Statement stat = null;
//1、加载驱动
try {
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println(conn);
//3、操作SQL语句
stat = (Statement) conn.createStatement();
//4、处理返回结果
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
//5、关闭资源
try {
if(null != conn) {
conn.close();//有可能会为空
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}