如何解决MySQL在高版本需要指明是不是进行SSL连接问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决MySQL在高版本需要指明是不是进行SSL连接问题相关的知识,希望对你有一定的参考价值。
Java使用mysql-jdbc连接MySQL出现如下警告: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连接字符串url中加入ssl=true或者false即可,如下所示。
url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true 参考技术A
请加上& 和xml文件格式有关 如下:
jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true&useSSL=false
参考技术B Java使用mysql-jdbc连接MySQL出现如下警告: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连接字符串url中加入ssl=true或者false即可,如下所示。
url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true
关于ssm框架使用mysql控制台出现警告问题
使用MySQL时,总会时不时出现这种警告信息
警告信息:WARN: Establishing SSL connection without server\'s identity verification is not recommended.
出现这个警告的原因是:
MySQL在高版本需要指明是否进行SSL连接。
比如我的MySQL版本为5.7,如果是5.5就不会存在这样的问题了。
如何解决这个警告信息呢?
比如我的mysql配置是这样的:
validationQuery=SELECT 1 jdbc_url=jdbc:mysql://localhost:3306/test jdbc_username=root jdbc_password=1234
将其改为
validationQuery=SELECT 1
jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc_username=root
jdbc_password=1234
主要是将useSSL改为false即可。
关于validationQuery,这里稍微说下。
DBCP针对不同数据库的validationQuery
当你使用DBCP连接池时,你可以通过设置testOnBorrow和testOnReturn属性测试这个连接是否可用。不幸的是你还需要设置validationQuery才能起作用。那么问题来了如何设置validationQuery这个值呢
什么是validationQuery ?
validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句。每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQuery。
Druid连接池同样也可以使用这样。记得,我第一个接触这个的时候,是在使用MyBatis Plus的时候,不然平常如果是MySQL的驱动根本不会select 1这种写法,而是
这样写:
validationQuery=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false jdbc_username=root jdbc_password=1234
以上是关于如何解决MySQL在高版本需要指明是不是进行SSL连接问题的主要内容,如果未能解决你的问题,请参考以下文章
干货 | 原创 MySQL/MariaDB数据库基于SSL实现主从复制