解决JDBC连接MySQL时发出的警告WARN: Establishing SSL connection without server's identity verification ...

本文解决了一个常见的MySQL警告问题,详细介绍了如何在Eclipse控制台中消除关于未验证服务器身份的SSL连接警告。通过正确配置XML文件中的连接字符串,添加useSSL=false参数并正确转义特殊字符,成功解决了警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于稍微有点强迫症的我来说,每次正常加载MySQL驱动后,eclipse的控制台总是出现一行红色警告;

Fri Mar 30 14:55:35 CST 2018 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.

仔细看了看,发现是字符串中没有配置SSL这个配置项。

需要在连接字符串中加上useSSL=false/true配置。

但是我是在XML中配置,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 这是默认配置信息 -->
<default-config> 
<!-- 连接四大参数配置 -->
<property name="jdbcUrl">jdbc:mysql://localhost:3306/somebodyblog?characterEncoding=utf8</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123456789</property>
<!-- 池参数配置 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</default-config>

</c3p0-config>

在字符串后面加上&useSSL=false后发现eclipse会报错!!!

启动后变成这样:

这是为什么呢????

于是搜寻资料发现:

在XML中,包括HTML中,要显示&这个字符,必须对其转义转义!!

遂改称如下样子:

贴出来:jdbc:mysql://localhost:3306/somebodyblog?characterEncoding=utf8&amp;useSSL=false

问题解决啦!哈哈哈哈哈,哈哈哈哈哈
 

### 解决 Eclipse 连接 MySQL SSL 警告的方法 当使用 JDBC 驱动程序连接到较新版本的 MySQL 数据库,可能会遇到如下警告: > WARN: Establishing SSL connection without server’s identity verification is not recommended.警告表明,在没有服务器身份验证的情况下建立了 SSL 连接。对于开发环境而言,通常可以选择关闭 SSL 或者忽略该警告。 为了消除上述警告信息,可以在数据库 URL 中添加 `useSSL=false` 参数来显式禁用 SSL 连接[^1]。具体操作方法如下所示: #### 修改数据源配置 假设当前的数据源配置位于应用程序中的某个位置,那么需要调整其 URL 字符串部分。以下是修改后的代码片段示例: ```java // 创建一个新的数据源配置对象实例 DataSourceConfig dsc = new DataSourceConfig(); // 设置完整的 JDBC URL 地址,并附加 useSSL=false 参数以防止 SSL 提示 dsc.setUrl("jdbc:mysql://localhost:3306/your_database_name?useSSL=false"); // 继续设置其他必要的属性... dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("your_username"); dsc.setPassword("your_password"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); ``` 请注意,URL 的参数之间应当由问号 (`?`) 和与号 (`&`) 正确分隔开;首次追加自定义参数应确保前面有一个问号[^4]。 另外,如果正在使用的 MySQL 版本较高(例如 5.7 及以上),则可能还需要指定字符编码等额外参数以确保兼容性和性能优化。此可进一步扩展 URL 如下形式: ```plaintext jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false ``` 这样做不仅解决SSL 警告问题,同也保障了字符串处理的一致性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值