问题
在配置数据库连接的时候经常见到useSSL=false/true配置如下:
# mysql
jdbc.username = root
jdbc.url = jdbc:mysql:///hospital?useUnicode=true&useSSL=false&characterEncoding=utf-8&serverTimezone=GMT%2B8
jdbc.password = 123456
jdbc.driver = com.mysql.cj.jdbc.Driver
如果不能正确配置useSSL在连接数据库的时候就会出现连接不成功的情况。
解析
SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。
MySQL的版本为5.7以上,必须加上useSSL=false,直接通过用户账号和密码进行连接MySQL数据库
当MySQL的版本是5.7以下则不进行要求,默认使用useSSL=false。
之所以出现SSL连接主要是出于MySQL安全考虑,单纯的账号密码连接的安全性还是不够的,所以新版本建议使用秘钥方式进行连接数据库。