MySQL数据库连接时区问题

<!-- 组件扫描--> <context:component-scan base-package="com"></context:component-scan> <!-- 数据库连接池配置--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/db01"/> <property name="username" value="root"/> <property name="password" value="zzy"/> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> </bean>

配置中的url这样写的话会报错_如下👇

严重: create connection SQLException, url: jdbc:mysql://localhost:3306/db01, errorCode 0, state 01S00 java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1558) at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623) at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)

主要原因翻译过来之后显示时区异常👇

服务器时区值 ' й ׼ɦ ' 无法识别或表示多个时区。如果要利用时区支持,则必须将服务器或 JDBC 驱动程序(通过 serverTimezone 配置属性)配置为使用更具体的时区值。

解决办法:👇

将xml中配置url的value改成如下:👇

<property name="url" value="jdbc:mysql://localhost:3306/db01?serverTimezone=GMT%2B8"/>

即加上服务器时区

就好啦!(下面是输出结果)

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary. 216, 2022 12:41:24 下午 com.alibaba.druid.pool.DruidDataSource info 信息: {dataSource-1} inited 1

----------------------------------------------------------- 23.1.7 补 --------------------------------------------------------

        今天看之前做过的项目,想把这个时区的问题做一个补充,再补充一个控制台打印的,废话不多说,上配置(不理解,为啥代码段写不了yml,改properties自己动手,懒了)

spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/manager?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: root password: zzy

 

mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

------------------------------------------------------------- OVER ----------------------------------------------------------

 


__EOF__

本文作者KAZU0105
本文链接https://www.cnblogs.com/0105XiaoyeZhang/p/17065930.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   KAZU0105  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示