您的位置:首页 > 数据库 > MySQL

pvpgn 1.8.0-1 重编译版本(bugfixed:系统启动时连接mysql可能会失败的bug)[更新1.8.1]

2007-08-08 03:05 579 查看
官方好久都没有更新了,自己小小的修改了下...呵呵

编译环境:

AMD A64 3000+
Windows Server 2003
Visual studio.NET 2003
libymysql 5.0.45

要的留下邮箱嘛,我发给你们,这里不好上传文件得
///////////////////////////////////////////////////////////////////////////////////////////
(以下是示例代码,可根据需要自己修改)

(/bnetd/sql_mysql.c)

原代码:




if (mysql_real_connect(mysql, host, user, pass, name, port ? atoi(port) : 0, socket, CLIENT_FOUND_ROWS) == NULL) ...{


eventlog(eventlog_level_error, __FUNCTION__, "error connecting to database (db said: '%s')", mysql_error(mysql));


mysql_close(mysql);


return -1;


}

替换为:




if (mysql_real_connect(mysql, host, user, pass, name, port ? atoi(port) : 0, socket, CLIENT_FOUND_ROWS) == NULL) ...{ #define storage_faild_count_max 12 //定义重试次数


int storage_faild_count;


eventlog(eventlog_level_error, __FUNCTION__, "error connecting to database (db said: '%s')", mysql_error(mysql));


Sleep(5000);//重试间隔时间ms




for (storage_faild_count=0;storage_faild_count<=storage_faild_count_max;storage_faild_count++)...{


eventlog(eventlog_level_error, __FUNCTION__, "reconnecting to database ...", mysql_error(mysql));


Sleep(5000);//重试间隔时间ms




if (mysql_real_connect(mysql, host, user, pass, name, port ? atoi(port) : 0, socket, CLIENT_FOUND_ROWS) != NULL)...{


eventlog(eventlog_level_error, __FUNCTION__, "succ connected to database", mysql_error(mysql));


break;


}




if (storage_faild_count>=storage_faild_count_max)...{


eventlog(eventlog_level_error, __FUNCTION__, "faild connecting to database (db said: '%s')", mysql_error(mysql));


return -1;


}


}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐