天天看點

關于ssm架構使用mysql控制台出現警告問題DBCP針對不同資料庫的validationQuery

使用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。

關于ssm架構使用mysql控制台出現警告問題DBCP針對不同資料庫的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