您好,登錄后才能下訂單哦!
以前mysql用的是3.23的版本,在調用C API的時候,基本不用重連的設置,但是現在使用mysql5.1,發現每天早上連接都會斷掉,感覺很奇怪,仔細查閱文檔,發現有2個參數:interactive_timeout,wait_timeout(缺省為28800秒),意思是如果28800秒沒有任何操作,連接就自動斷掉,但是奇怪的是為什么3.23也有這個參數卻沒發生這樣是問題呢?后發現在5.0.3后,默認是超時斷掉后不自動重連,如果需要設置為自動重連,需要在mysql_init()之后,用mysql_options()來設置MYSQL_OPT_RECONNECT為1,這樣就可以自動重連了!!
下面是連接的函數:
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;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。