以前mysql用的是3.23的版本,在調(diào)用C API的時(shí)候,基本不用重連的設(shè)置,但是現(xiàn)在使用mysql5.1,發(fā)現(xiàn)每天早上連接都會(huì)斷掉,感覺(jué)很奇怪,仔細(xì)查閱文檔,發(fā)現(xiàn)有2個(gè)參數(shù):interactive_timeout,wait_timeout(缺省為28800秒),意思是如果28800秒沒(méi)有任何操作,連接就自動(dòng)斷掉,但是奇怪的是為什么3.23也有這個(gè)參數(shù)卻沒(méi)發(fā)生這樣是問(wèn)題呢?后發(fā)現(xiàn)在5.0.3后,默認(rèn)是超時(shí)斷掉后不自動(dòng)重連,如果需要設(shè)置為自動(dòng)重連,需要在mysql_init()之后,用mysql_options()來(lái)設(shè)置MYSQL_OPT_RECONNECT為1,這樣就可以自動(dòng)重連了!!
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、寧強(qiáng)ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的寧強(qiáng)網(wǎng)站制作公司下面是連接的函數(shù):
int xdbmysql_connect (XdbMysqlBackend *self, const char *host, const char *port,
const char *user, const char *pass, const char *db)
{
int nport;
char value = 1;
if (!port || sscanf(port, "%d", &nport) < 1)
nport = 0;
mysql_init(&(self->mysql));
mysql_options(&(self->mysql), MYSQL_OPT_RECONNECT, (char *)&value);
self->connection = mysql_real_connect(&(self->mysql), host, user, pass,
db, nport, NULL, 0);
if (!xdbmysql_is_connected(self))
return 0;
//add by zld(b)
strcpy(st_ui.host,host);
strcpy(st_ui.port,port);
strcpy(st_ui.usr,user);
strcpy(st_ui.pwd,pass);
strcpy(st_ui.dbn,db);
//add by zld(e)
return 1;
}