使用库 Mysql++ 将 Recconect 设置为 mysql 服务器,但不可用

问题描述

我尝试设置重新连接选项并在断开网络连接时使用api ping(),但它不起作用,我将部分代码放在这里:

conn.set_option(new mysqlpp::ReconnectOption(true));
conn.set_option(new mysqlpp::ConnectTimeoutOption(288000));

if (!conn.connect(dbname.c_str(),server_addr.c_str(),username.c_str(),password.c_str(),3306))
{
   LOG_ERROR("Create Connect Failed...");
    return nullptr;
}

...

if (!conn.connected())
    {
        LOG_WARN("The connection is disconnected...");
        
        while (!conn.ping())
        {
            LOG_DEBUG("Check the network is available...");
            std::this_thread::sleep_for(std::chrono::seconds(10));
//            if (conn.connected())
//                break;
        }

        return res;
    }

    try {
        Query query = conn.query(sql);
        res = query.store();
        LOG_INFO( "Successed:" << sql);
        return res;
    }
   catch(...)
   {}
}

虽然我使用了option,尝试ping()服务器,当我断开本地网络,然后恢复网络时,程序总是只检查conn.ping(),也就是说,似乎连接无法识别网络现在正常。

有什么方法可以重连mysql++吗?

问候 乔治

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...