https://bbs.csdn.net/topics/340185527javascript
网站今天放到服务器上好好的,过一天就不能访问数据库了,重启一下tomcat就行了,网上找了说是MySQL对全部链接的有效时间默认为28800秒,正好8小时,高手请帮忙,最好有实例,谢谢java
看你的描述重启一下tomcat就行了 说明不是mysql 的问题。应该是系统的链接池的缘由吧。应该让系统在获取链接池的连接的时候,判断下连接是不是活动的。mysql
https://cloud.tencent.com/developer/article/1353263web
咱们如今用的tomcat大概都是8.5 或是9.0,这些版本的tomcat内置的DBCP2,和之前老版本如tomcat 7的链接池不同,7.0等老版本用的是DBCP。sql
tomcat 7等老版本中,内置链接池时 context.xml文件 的默认配置示例:数据库
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/day28" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWaitMillis="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/day28"/> </Context>
在老版本的tomcat里面关于容许的最大链接数用maxActive来表示,最大等待延用maxWait来表示apache
咱们如今用的是新版本的tomcat,新版本内置的链接池已经升级了,因此若是咱们继续使用这个配置就会出现以下图所示警告:tomcat
警告原文以下:服务器
七月 05, 2018 1:55:06 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory [D:\learn\JavaWeb\apache-tomcat\apache-tomcat-9.0.7\webapps\day28_struts2_final] 七月 05, 2018 1:55:06 下午 org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory getObjectInstance 警告: Name = day28 Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "100" for "maxActive" property, which is being ignored. 七月 05, 2018 1:55:06 下午 org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory getObjectInstance 警告: Name = day28 Property maxWait is not used in DBCP2 , use maxWaitMillis instead. maxWaitMillis default value is -1. You have set value of "10000" for "maxWait" property, which is being ignored. 七月 05, 2018 1:55:06 下午 org.apache.jasper.servlet.TldScanner scanJars 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 七月 05, 2018 1:55:07 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory [D:\learn\JavaWeb\apache-tomcat\apache-tomcat-9.0.7\webapps\day28_struts2_final] has finished in [1,469] ms
这个警告其实已经把话说的很明白了,既然8.5,9.0tomcat内置的是DBCP2,已经使用 maxTotal来取代maxActive、使用 maxWaitMillis来取代maxWait,app
所以咱们只须要将本身的配置文件中的maxActive替换成maxTotal、maxWait替换成maxWaitMillis便可。
<?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jdbc/day28" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/day28"/> </Context>
警告消失了:
七月 05, 2018 3:26:15 下午 org.apache.catalina.startup.HostConfig undeploy 信息: Undeploying context [/day28_struts2_final] 七月 05, 2018 3:26:15 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory [D:\learn\JavaWeb\apache-tomcat\apache-tomcat-9.0.7\webapps\day28_struts2_final] 七月 05, 2018 3:26:16 下午 org.apache.jasper.servlet.TldScanner scanJars 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 七月 05, 2018 3:26:16 下午 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deployment of web application directory [D:\learn\JavaWeb\apache-tomcat\apache-tomcat-9.0.7\webapps\day28_struts2_final] has finished in [1,087] ms
附上:DBCP2中配置参数详解连接:http://bsr1983.iteye.com/blog/2092467
本文参考连接以下:https://blog.csdn.net/vr_jia/article/details/74530389