设置Mysql C API断线自动重连
Mysql的C API自带重连功能,执行语句时发现连接断开,mysql库会尝试重连,并重新执行语句。使用mysql_options函数设置MYSQL_OPT_RECONNECT选项可以开启自动重连功能。默认情况下自动重连功能是关闭的。
示例如下:
my_bool reconnect = 1; //设置为1是开启,设置为0是关闭
mysql_options(&mysql, MYSQL_OPT_RECONNECT, &reconnect);
注意
自动重连会影响以下这些连接相关的状态:
- 回滚任何活动事务并重置自动提交模式
- 释放所有表级锁
- 关闭所有TEMPORARY表
- 将会话系统变量重新初始化为相应的全局系统变量的值,包括由set NAMES等语句隐式设置的系统变量
- 丢失用户定义的变量设置
- 预定义语句失效
- 关闭句柄HANDLER变量
- 将LAST_INSERT_ID()初始化为0
- 释放通过GET_LOCK()获得的锁
- 失去客户端与确定连接线程Performance Schema线程表行之间的关联。如果客户端在断开连接后重新连接,会话将与线程表中的新行相关联,并且线程监视状态可能不同
参考连接:https://dev.mysql.com/doc/c-api/5.6/en/c-api-auto-reconnect.html