MySQL 警告WARN: Establishing SSL connection without server's identity verification is not recommended.

Fri Jun 17 13:46:54 CST 2016 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.

首先恭喜,出现这个的时候MySQL说明已经安装成功了,这是警告不是错误,以后使用是不影响的。大概的意思就是说建立ssl连接,但是服务器没有身份认证,这种方式不推荐使用。

解决办法:

  原来的连接url:Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "letmein");

  现在的连接url:Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false","root", "letmein");
            // 连接URL为 jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码

 

 

 

另一篇文章//////////////////////////////////

 

在JDBC连接Mysql数据库的过程中出现了如下的警告信息:

 

 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.

是Mysql数据库的SSL连接问题,提示警告不建议使用没有带服务器身份验证的SSL连接,是在MYSQL5.5.45+, 5.6.26+ and 5.7.6+版本中才有的这个问题。解决办法在警告中已经说明了:

 

1.在数据库连接的url中添加useSSL=false;2.url中添加useSSL=true,并且提供服务器的验证证书。如果只是做一个测试的话,没必要搞证书那么麻烦啦,在连接后添加一个useSSL=false即可,例如:

jdbc:mysql://localhost:3306/test?useSSL=false

 

在使用Java进行JDBC连接的时候,可以在Properties对象中设置useSSL的值为false,但是和写在链接中是一样的。比如

 

 
  1. Properties properties = new Properties();

  2. properties.setProperty("user", "root");

  3. properties.setProperty("password", "milos23);

  4. properties.setProperty("useSSL", "false");

  5. properties.setProperty("autoReconnect", "true");

  6.  
  7. try (Connection conn = DriverManager.getConnection(connectionUrl, properties)) {

  8. ...

  9. } catch (SQLException e) {

  10. ...

  11. }

其实这个是不用写出来的,但是一个同事懒啊,都不知道看警告信息,直接来问我,写给懒的人看的,哈哈

你可能感兴趣的:(java)