jdbc连接mysql8驱动详解

当使用“mysql-connector-java 8”以上版本时,会出现很多问题,下面将给出一些解决方案。

jdbc连接通用配置

1.JDBC driver 由“com.mysql.jdbc.Driver”改为“com.mysql.cj.jdbc.Driver”。
2.JDBC url为:
jdbc:mysql://localhost/rs_report?userSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT

常见错误

  • 出现错误:“Establishing SSL connection withoutserver’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 defaultif explicit option isn’t set. For compliance with existing applications notusing SSL the verifyServerCertificate property is set to ‘false’. You needeither to explicitly disable SSL by setting useSSL=false, or set useSSL=trueand provide truststore for server certificate verification.”
    解决方案,在url中加上“userSSL=true”或“userSSL=false”。

不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+,5.6.26+和5.7.6+的SSL连接要求,如果未设置连接方式,则默认情况下必须建立SSL连接。对于不使用SSL的现有应用程序,服务器的验证证书属性设置为“false”。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并提供服务器的验证证书。

解决方法:
1、数据库URL连接地址添加useSSL=false,适用于测试。
2、数据库URL连接地址添加useSSL=true,并且提供服务器的验证证书。

  • 出现错误:“java.sql.SQLException: The server time zonevalue ‘???ú±ê×??±??’ is unrecognized or represents more than one time zone. Youmust configure either the server or JDBC driver (via the serverTimezoneconfiguration property) to use a more specifc time zone value if you want toutilize time zone support.”
    解决方案,在url中加上“serverTimezone=UTC”。
  • 出现错误:数据库内容中文乱码
    解决方案,在url中加上“useUnicode=true&characterEncoding=UTF8”

数据库时间问题

解决方案:

  • 情况一
    数据库时间类型为varchar/dateTime,则设置“serverTimezone=UTC”即可解决跨时区问题
  • 情况二
    数据库时间类型为TIMESTAMP,则设置“serverTimezone=shanghai”即可解决跨时区问题
  • mysql所有时区:mysql文档中发现可用的时区都在/usr/share/zoneinfo目录下

//北京时间东八区
serverTimezone=GMT%2B8
//或者使用上海时间
serverTimezone=Asia/Shanghai

GMT(Greenwish Mean Time 格林威治平时),这是UTC(协调世界时:Coordinated Universal Time)的民间名称。GMT=UTC

以下是所有时区编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值