现象: 网站上线后,由于开始访问量不是很多,休息天一般都无人访问。发现星期一上班过来,打开网站,报页面找不到的应用错误。
调查原因,原来是DB链接失效,mysql 的数据库有一个全局变量,设定数据库链接有效期限的,默认为8小时。
如果超过这个时间,一直没有访问数据库的话,mysql会自动将其失效。
解决这个问题有两个方法:
1.如下,自动激活DB链接。
设置参考:DB的context.xml文件,添加下面5行属性。
参数设置:参考官网 http://commons.apache.org/dbcp/configuration.html
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" antiResourceLocking="false">
<Resource name="jdbc/dbname"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://IP.ADD.RE.SS:3306/dbname?characterEncoding=UTF-8"
username="******"
password="******"
maxActive="500"
maxIdle="30"
maxWait="10000"
validationQuery = "SELECT 1"
testWhileIdle = "true"
timeBetweenEvictionRunsMillis = "3600000"
minEvictableIdleTimeMillis = "18000000"
testOnBorrow = "true "/>
</Context>
2.可以修改mysql DB的全局参数。
将默认原来8小时的时效期限更新为合适的时长。
wait_timeout:
The number of seconds the server waits for activity on an interactive connection before closing it. An interactive client is defined as a client that uses the CLIENT_INTERACTIVE option to mysql_real_connect().
interactive_timeout:
The number of seconds the server waits for activity on a noninteractive connection before closing it. This timeout applies only to TCP/IP and Unix socket file connections, not to connections made using named pipes, or shared memory.
问题:
如果在配置文件my.cnf中只设置参数wait_timeout=100,则重启服务器后进入,
执行: mysql> show variables like “%timeout%”
会发现参数设置并未生效,仍然为28800(即默认的8个小时)。
要同时设置interactive_timeout和wait_timeout才会生效。
set wait_timeout=100
set interactive_timeout=100
重启MySQL Server进入后,查看设置已经生效。
From: http://blog.csdn.net/quickgu/article/details/7179023
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com