【数据库连接问题】Java项目启动时无限异常com.alibaba.druid.pool.DruidDataSource : create connection SQLException
短信预约 -IT技能 免费直播动态提醒
1.问题描述
Java项目启动失败,ERROR:com.alibaba.druid.pool.DruidDataSource : create connection SQLException
2.问题背景
在此之前这个SpringBoot项目中使用的是单一数据库读写策略。今天尝试使用读写分离策略,在application.yml
配置文件中加入了以下读写分离相关内容后启动项目失败。
spring: shardingsphere: datasource: names: master,slave # 主数据源 master: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://ip:3306/数据库名?characterEncoding=utf-8 username: root password: root # 从数据源 slave: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://ip:3306/数据库名?characterEncoding=utf-8 username: root password: root masterslave: # 读写分离配置 load-balance-algorithm-type: round_robin #轮询 # 最终的数据源名称 name: dataSource # 主库数据源名称 master-data-source-name: master # 从库数据源名称列表,多个逗号分隔 slave-data-source-names: slave props: sql: show: true #开启SQL显示,默认false # 允许bean定义覆盖配置项 main: allow-bean-definition-overriding: true
3. 问题解决
根据网上的解决方法,初步怀疑是JDK、mysql-connector-java与MySQL数据库的版本不对应,经检查不是版本问题,然后看到了这篇博客《Mysql-connector-java驱动版本问题》,看到文中关于时区的设置突然感觉有点眼熟(如下图),然后再回头看原来的单一数据库的设置,果然也是设置了时区相关的内容,复制一份遂解决。
改后的数据库连接设置:jdbc:mysql://192.168.64.129:3306/reggie?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
来源地址:https://blog.csdn.net/Icbyone/article/details/129335178
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341