首先安装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 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 表:
Lht蓝海豚(大维)团购导航系统是一套开源程序,采用PHP+MySql平台开发,具有强大的多规则API采集功能、精确化引导消费功能,卓越的负载能力和访问速度,全面支持第三方整合(微博、短信等)前台功能团购名站:显示分类下的所有团购网站,点击团购站,可直接进行查看、推荐、收藏精品商城:为网民推荐展示非团购网站的网上商城今日团购:显示各团购网站正在进行的团购团购排行:今日团购商品可按价格、行业、折扣、
#include#include #include 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; }
编译与链接
编译时需要链接 MySQL 客户端库。使用如下命令:
gcc -o mysql_app mysql_app.c -lmysqlclient如果提示找不到头文件或库,可能需要指定路径:
- -I/usr/include/mysql 指定头文件路径
- -L/usr/lib/x86_64-linux-gnu -lmysqlclient 指定库路径(路径可能因系统而异)
确保 MySQL 服务正在运行,并且用户名、密码、数据库名和表结构都正确。权限不足会导致连接失败。
基本上就这些。掌握这几个核心函数后,你可以扩展出插入、更新、预处理语句等更复杂的功能。不复杂但容易忽略的是错误检查和资源释放,别忘了每一步都判断返回值。









