首先安装MySQL开发库,再编写包含初始化、连接、查询、结果处理和关闭连接的C程序,并用gcc链接mysqlclient库编译运行。

在 Linux 下使用 MySQL C API 可以让你的 C 程序直接与 MySQL 数据库交互。这在开发高性能、低延迟的数据库应用时非常有用。要实现这一点,你需要安装 MySQL 开发库,编写连接和操作数据库的 C 代码,并正确编译链接。
安装 MySQL 开发库
大多数 Linux 发行版都提供 mysql-client 或 libmysqlclient-dev 这样的包来支持 C API 开发。
- Ubuntu/Debian: sudo apt-get install libmysqlclient-dev
- CentOS/RHEL: sudo yum install mysql-devel 或 dnf install mysql-devel
安装完成后,你就可以使用 <mysql.h> 头文件并链接 MySQL 客户端库。
连接数据库的基本步骤
使用 MySQL C API 的典型流程包括初始化连接、登录、执行 SQL、处理结果和清理资源。
- mysql_init():初始化 MYSQL 结构体
- mysql_real_connect():建立与 MySQL 服务器的连接
- mysql_query() 或 mysql_real_query():发送 SQL 语句
- mysql_store_result():获取查询结果集
- mysql_fetch_row():逐行读取数据
- mysql_close():关闭连接
示例代码:查询用户表
下面是一个简单但完整的例子,连接到本地数据库并查询 user 表:
<font face="Courier New" size="2" color="#000080">
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
conn = mysql_init(NULL);
// 连接数据库
if (!mysql_real_connect(conn, "localhost", "your_user", "your_pass", "testdb", 0, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
// 执行查询
if (mysql_query(conn, "SELECT id, name FROM users")) {
fprintf(stderr, "%s\n", mysql_error(conn));
mysql_close(conn);
exit(1);
}
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_close(conn);
return 0;
}
</font>
编译与链接
编译时需要链接 MySQL 客户端库。使用如下命令:
gcc -o mysql_app mysql_app.c -lmysqlclient如果提示找不到头文件或库,可能需要指定路径:
- -I/usr/include/mysql 指定头文件路径
- -L/usr/lib/x86_64-linux-gnu -lmysqlclient 指定库路径(路径可能因系统而异)
确保 MySQL 服务正在运行,并且用户名、密码、数据库名和表结构都正确。权限不足会导致连接失败。
基本上就这些。掌握这几个核心函数后,你可以扩展出插入、更新、预处理语句等更复杂的功能。不复杂但容易忽略的是错误检查和资源释放,别忘了每一步都判断返回值。










