免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6476 | 回复: 4
打印 上一主题 下一主题

关于wait_timeout的设置问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-24 11:38 |只看该作者 |倒序浏览
程序提示 MySQL server has gone away,..., 在网上查看需设置wait_timeout,
第一个问题:
在[mysqlhotcopy]下:
    wait_timeout=2880000
    interactive_timeout = 2880000
好像不行,非得在 [mysqld] 下设置吗?
如果设置后,程序中 在连接数据库地时候还需要设置CLIENT_INTERACTIVE 参数吗?
第二个问题:如果设置 wait_timeout=0;  会永久连接而不中断吗
   希望有经验的热心朋友给予指导,谢谢

论坛徽章:
0
2 [报告]
发表于 2008-11-24 14:02 |只看该作者
mysqlhotcopy下面的选项就只有在使用mysqlhotcopy的时候才会被影响——>mysqlhotcopy下面有wait_timeout吗?

在mysql的选项下有个connect_timeout是用于控制使用mysql客户端的链接超时的,这个指的是在服务器告知等待连接成功或者不成功的时间,如果超过这个时间那么就提示连接失败;
在mysqld的选项下面有个wait_timeout指的是客户端(任意客户端,如jdbc,odbc,mysql,etc)在连接成功之后,如果超过这个时间都没有任何动作,那么服务器就关闭这个连接的时间。

论坛徽章:
0
3 [报告]
发表于 2008-11-24 15:56 |只看该作者
谢谢andrefun 这位朋友,在mysqld的选项下面设置wait_timeout和interactive_timeout 后,
在连接数据库地时,程序中还需要设置CLIENT_INTERACTIVE 参数吗?
如果设置 wait_timeout=0;  会永久连接而不中断吗

论坛徽章:
0
4 [报告]
发表于 2008-11-24 16:49 |只看该作者

回复 #3 msccao 的帖子

如果在mysqld下面设置的话,影响的是所有的数据库连接,所以你的程序也会被影响。其中wait_timeout是影响非交互式的连接,而interactive_timeout是影响交互式的连接。而区分一个连接是否是交互式连接的标识是mysql_real_connect()的client_flag参数。不知道你是不是用的MySQL的C API,你可以自己参考一下文档,上面说的比较清楚。

wait_timeout的值最小值是1,如果你设置成0,mysql还是会帮你变成1,interactive_timeout也是一样。

论坛徽章:
0
5 [报告]
发表于 2008-11-24 18:17 |只看该作者
在mysqld的选项下面wait_timeout和interactive_timeout 都设置后重启mysql,
用的是C API 的MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag)

将最后一个参数client_flag 设为0 是否可行?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP