C语言连接MySQL数据库的完整指南
要在C语言中连接MySQL数据库,首先需要安装MySQL C连接器库,并通过调用其API函数实现数据库的连接与操作。核心步骤包括配置开发环境、建立连接、执行SQL语句以及处理结果集,下面将详细展开说明。
环境准备与库安装
在开始编写代码前,需确保系统已安装MySQL服务器和MySQL C连接器(如MySQL Connector/C),在Linux系统中,可通过包管理器安装:

sudo apt-get install libmysqlclient-dev # Debian/Ubuntu
在Windows中,可从MySQL官网下载预编译库,并配置IDE的包含路径和链接库。
基本连接流程
C语言连接MySQL主要依赖 mysql.h 头文件提供的函数,以下是一个简单的连接示例:
#include <mysql.h>
#include <stdio.h>
int main() {
MYSQL *conn;
conn = mysql_init(NULL); // 初始化连接句柄
// 建立实际连接
if (!mysql_real_connect(conn, "localhost", "用户名", "密码", "数据库名", 0, NULL, 0)) {
fprintf(stderr, "连接失败: %s\n", mysql_error(conn));
return 1;
}
printf("连接成功!\n");
mysql_close(conn); // 关闭连接
return 0;
}
关键点:
- 使用
mysql_init()初始化连接对象。 mysql_real_connect()需指定主机、用户名、密码和数据库名等参数。- 务必检查连接返回值,并用
mysql_error()输出错误信息。
执行SQL查询与处理数据
连接成功后,可通过 mysql_query() 执行SQL语句,例如查询数据并遍历结果:
MYSQL_RES *res;
MYSQL_ROW row;
mysql_query(conn, "SELECT id, name FROM users");
res = mysql_store_result(conn);
while ((row = mysql_fetch_row(res)) != NULL) {
printf("ID: %s, Name: %s\n", row[0], row[1]);
}
mysql_free_result(res); // 释放结果集
注意事项:
- 执行插入、更新等操作后,可用
mysql_affected_rows()获取影响行数。 - 结果集使用完毕必须释放,避免内存泄漏。
错误处理与资源清理
稳健的代码必须包含错误处理机制,每个MySQL API调用后都应检查返回值,
if (mysql_query(conn, "SQL语句") != 0) {
fprintf(stderr, "查询失败: %s\n", mysql_error(conn));
}
程序结束前,需调用 mysql_close() 关闭连接,确保释放所有资源。
编译与运行
编译时需链接MySQL客户端库,以GCC为例:
gcc -o program program.c `mysql_config --cflags --libs`
此命令自动包含必要的头文件路径和库链接参数。
通过MySQL C API,C语言可以高效地操作数据库。重点在于正确管理连接生命周期、妥善处理错误及释放资源,对于复杂应用,还可使用预处理语句(mysql_stmt_init())提升安全性和性能,掌握这些基础后,开发者可进一步探索事务管理、连接池等高级特性,构建稳定的数据库驱动应用。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/15144.html发布于:2026-09-06





