Start a Spring Boot application and making a JDBC connection, hits the following warning messages on console :


Fri Feb 10 18:43:02 SGT 2017 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.

//... repeat over and over

Here’s the connection properties :

application.properties

#mysql datasource
spring.datasource.url=jdbc:mysql://localhost/mkyong
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

P.S Tested with MySQL 5.7.17

Solution

To fix it, append a useSSL=false at the end of the MySQL connection string :

application.properties

#mysql datasource
spring.datasource.url=jdbc:mysql://localhost/mkyong?useSSL=false
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

References

  1. Connecting Securely Using SSL