微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用库 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 举报,一经查实,本站将立刻删除。