mysql 八小时断开连接有关问题

mysql 八小时断开连接问题

mysql> show variables like ‘%timeout%’;

+————————–+——-+

| Variable_name | Value |

+————————–+——-+

| connect_timeout | 5 |

| delayed_insert_timeout | 300 |

| innodb_lock_wait_timeout | 50 |

| interactive_timeout | 28800 |

| net_read_timeout | 30 |

| net_write_timeout | 60 |

| slave_net_timeout | 3600 |

| wait_timeout | 28800 |

+————————–+——-+  

修改操作:打开/etc/my.cnf,在属性组mysqld下面添加参数如下:

[mysqld]

interactive_timeout=28800000

wait_timeout=28800000

如上所示,网上一般都这么介绍,将这两个参数改变一下

有的说是设置成大值 ,有的说是设置成10

环境: 

Linux:

Last login: Thu Apr 22 12:47:20 2010 from 10.164.13.111

[root@localhost ~]# lsb_release -a

LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch

Distributor ID: RedHatEnterpriseServer

Description: Red Hat Enterprise Linux Server release 5.4 (Tikanga)

Release: 5.4

Codename: Tikanga

MySql 数据库:

mysql> select version();

+————+

| version() |

+————+

| 5.1.39-log |

+————+

Jboss 服务器:

jboss-5.0.0.CR2

struts1和Hibernate3.2 技术

那么我现在有一些问题了:

1:如果把interactive_timeout 和 wait_timeout设置成最大数那么数据库的压力会很大,一直都不释放资源

2:如果设置成10的话。 那么在Jboss启动的情况下,如果没有人访问此系统那么过10秒后再进行访问,Mysql会自动断开连接,则不能正常登录系统。

3:怎么能够在确保mysql的最忧化的情况下,又能在任意时间去访问此系统呢

  需要设置mysql还是设置jboss 或是在程序上做些手脚呢?



连接池里边没有设置心跳的ping sql语句吗?就是每隔多长时间去查询一次数据库。将上述两个值改成大于这个心跳间隔时间就可以了。

否则只能将上述值改大了。




在程序中放个定时模块,每60s 随便执行个语句,比如 select now();




当然不是。 你的连接池应该是保留这些连接,不应该被断掉。除非8小时根本没什么访问。




根据你的应用。

最大值时,你可以当成长链接,由数据库来控制时间。

最小值时,由你的程序来控制时间。

mysql 八小时断开连接有关问题

相关文章:

你感兴趣的文章:

标签云: