免费注册 查看新帖 |

Chinaunix

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

authdaemond: vmysql: sql error[3]: MySQL server has gone away [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-23 17:56 |只看该作者 |倒序浏览
安装vpopmail-5.4.13.tar.gz、courier-authlib-0.58.tar.bz2、courier-imap-4.0.6.20051004.tar.bz2、squirrelmail-1.4.6-rc1.tar.bz2后,用outlook等可正常收发邮件。

但如果使用webmail,mysql的wait_timeout之前都正常,到达后,日志中出就现authdaemond: vmysql: sql error[3]: MySQL server has gone away的错误,且用户将不能再使用webmail,除非重启courier-authlib。

除了加大mysql的wait_timeout值之外,哪位高手有其它办法解决吗?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2006-01-23 19:04 |只看该作者
以前我也做过类似的,建议你查一下mysqld的日志,可能能追查到什么结果

论坛徽章:
0
3 [报告]
发表于 2006-01-24 16:47 |只看该作者
每遇到过!

论坛徽章:
0
4 [报告]
发表于 2007-02-05 16:07 |只看该作者

  1. diff -u vpopmail-5.4.13.org/vmysql.c vpopmail-5.4.13/vmysql.c
  2. --- vpopmail-5.4.13.org/vmysql.c        2004-12-16 23:57:34.000000000 +0800
  3. +++ vpopmail-5.4.13/vmysql.c    2006-03-31 09:42:45.000000000 +0800
  4. @@ -188,7 +188,7 @@
  5. {
  6.      unsigned int timeout = 2;

  7. -    if ( update_open != 0 ) return(0);
  8. +    if ( update_open && (mysql_ping(&mysql_update)==0) ) return(0);
  9.      update_open = 1;

  10.      verrori = load_connection_info();
  11. @@ -238,7 +238,7 @@
  12. int vauth_open_read()
  13. {
  14.      /* if we are already connected, just return */
  15. -    if ( read_open != 0 ) return(0);
  16. +    if ( read_open && (mysql_ping(&mysql_read)==0) ) return(0);
  17.      read_open = 1;

  18.      /* connect to mysql and set the database */
复制代码

论坛徽章:
0
5 [报告]
发表于 2007-02-05 17:13 |只看该作者
这是数据库操作超时自动断开的问题,outlook应该实现了重连机制,而WEBMAIL就不知道了,在C++的API中有类似这样的处理函数:

  1. mysqlpp::Connection conn(false);
  2. conn.set_option(mysqlpp::Connection::opt_reconnect, true);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP