You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C++的mysql.h库操作MySQL时如何关闭数据库连接

MySQL C API 数据库连接正确关闭方法

基础关闭实现

使用mysql.h库操作数据库时,直接调用mysql_close()函数即可释放已建立的连接资源。调用前需先判断连接指针有效性,避免空指针访问异常:

// 所有数据库操作执行完成、且已释放所有MYSQL_RES结果集后执行关闭
if (conn != nullptr) {
    mysql_close(conn);
    conn = nullptr; // 关闭后置空,避免野指针和重复释放
}

注意事项

  • 必须提前释放所有通过该连接查询得到的MYSQL_RES结果集(使用mysql_free_result()),否则会造成内存泄漏
  • 若mysql_real_connect返回空指针(连接失败),仍需要调用mysql_close释放mysql_init申请的内存资源
  • 不要重复调用mysql_close()释放同一个连接,关闭后将指针置空可有效规避该问题

完整调用示例

#include <mysql.h>

int main() {
    // 初始化连接
    MYSQL* conn = mysql_init(nullptr);
    if (conn == nullptr) {
        // 初始化失败直接返回,无需额外释放资源
        return 1;
    }
    
    // 建立连接
    conn = mysql_real_connect(conn, "localhost", "root", "admin", "uczelnia", 3306, NULL, 0);
    if (conn == nullptr) {
        // 连接失败,先释放init申请的资源
        mysql_close(conn);
        return 2;
    }

    // 此处执行数据库增删改查操作,操作完成后记得释放MYSQL_RES结果集

    // 正常关闭连接
    mysql_close(conn);
    conn = nullptr;
    return 0;
}

内容的提问来源于stack exchange,提问作者lolorek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 04:06:04