每天固定的时间就会在日志里面反馈出来,不知道是mysql的配置问题还是druid的配置问题,还是druid的版本问题 我用的是druid-starter 版本是 1.1.18 druid的版本号是 1.1.18(很奇怪,错误代码里面指明的是1.1.17) mysql的版本是5.7.20 mysql-connector-java的版本是5.1.40 1.日志报错截图:(我们用了mycat做数据库中间件)
2.druid的配置: #datasource spring.datasource.driver-class-name = com.mysql.jdbc.Driver spring.datasource.druid.filter.stat.enabled = true spring.datasource.druid.filter.stat.log-slow-sql = true spring.datasource.druid.filter.stat.merge-sql = true spring.datasource.druid.filter.stat.slow-sql-millis = 1000 spring.datasource.druid.filters = stat,wall,log4j spring.datasource.druid.keep-alive = true spring.datasource.druid.remove-abandoned = true spring.datasource.druid.remove-abandoned-timeout = 1800 spring.datasource.druid.initialSize = 5 spring.datasource.druid.maxActive = 30 spring.datasource.druid.maxWait = 60000 spring.datasource.druid.minEvictableIdleTimeMillis = 300000 spring.datasource.druid.timeBetweenEvictionRunsMillis = 60001 spring.datasource.druid.minIdle = 5 spring.datasource.druid.stat-view-servlet.enabled = true spring.datasource.druid.stat-view-servlet.login-username = tezign spring.datasource.druid.stat-view-servlet.login-password = tezign0818 spring.datasource.druid.testOnBorrow = false spring.datasource.druid.testOnReturn = false spring.datasource.druid.testWhileIdle = true spring.datasource.druid.useGlobalDataSourceStat = true spring.datasource.druid.validationQuery = SELECT 1 FROM DUAL spring.datasource.druid.validationQueryTimeout = 10 spring.datasource.druid.web-stat-filter.enabled = true spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
#mysql spring.datasource.druid.my-cat.url = jdbc:mysql://mycat:xxxx/xx?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true spring.datasource.druid.my-cat.username = xxxx spring.datasource.druid.my-cat.password = xxxx
3.mysql的关键配置
wait_timeout, 86400 connect_timeout, 10 interactive_timeout, 7200
原提问者GitHub用户Ahrievil
根据你提供的信息,每天固定时间会有日志打印提示可能与以下原因相关:
Druid版本问题
早期版本的Druid数据源存在一些问题,可能会导致固定时间出现日志打印。
建议升级到较新的Druid版本,如1.1.20及以上,以获得 bug fixes。
Druid配置问题
检查Druid数据源的各配置项,看是否有异常。尤其要注意:
连接检查配置,如testWhileIdle、testOnBorrow 是否合理
连接池监控配置 timeBetweenEvictionRunsMillis 是否太短
连接超时 maxWait配置 是否过低
不当配置有可能导致固定时间出现问题。
MySQL配置问题
也需要检查MySQL配置,看一下:
并发连接数阈值是否足够
MySQL中是否有固定的任务(如backup)固定时间执行
MySQL慢日志中是否有长时间运行的查询
MySQL端也有可能引起固定时间出现问题。
Druid监控和日志扩展
检查Druid是否开启了监控拓展和日志打印,这些也有可能是端倪。
总的来说,固定时间出现日志打印提示的原因可能来自 Druid 端、 MySQL 端或者 两边都有。
需要分别检查他们的配置和版本,并根据日志内容进一步定位原因。
升级 Druid 版本、调整Druid和 MySQL配置、关闭不需要的监控等措施都有助于解决问题。
问题出在我们用的是mycat来作为数据库分表的工具,mycat重启会导致链接丢失,经查证,每次重启和报错的时间完全吻合
原回答者GitHub用户Ahrievil
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。