加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql5.1关于自动重连的一些改变

发布时间:2022-06-25 04:28:37 所属栏目:MySql教程 来源:互联网
导读:以前mysql用的是3.23的版本,在调用C API的时候,基本不用重连的设置,但是现在使用mysql5.1,发现每天早上连接都会断掉,感觉很奇怪,仔细查阅文档,发现有2个参数:interactive_timeout,wait_timeout(缺省为28800秒),意思是如果28800秒没有任何操作,连接就自动断
  以前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)

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!