Linux下C语言连接MySQL数据库教程

5星 · 超过95%的资源 需积分: 4 2 下载量 95 浏览量 更新于2024-09-14 收藏 3KB TXT 举报
"这篇内容是关于在Linux环境下使用C语言连接MySQL数据库的教程。" 在Linux系统中,C语言连接MySQL数据库通常涉及以下步骤: 1. 安装MySQL开发库: 在进行C编程之前,确保已经安装了MySQL的开发库。这包括`mysqlinclude`和`lib`目录,通常位于`/usr/include`和`/usr/lib`。如果没有,可以通过拷贝或软链接的方式将它们添加到系统路径。例如: ``` cp -rf include/* /usr/include ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock ``` 2. 编译C程序: 编写C代码时,需要包含必要的头文件,如`stdlib.h`, `stdio.h`和`mysql.h`。然后使用`gcc`编译器编译程序,并链接`mysqlclient`库。示例编译命令: ``` gcc -o mysql mysql.c -lmysqlclient ``` 3. C代码示例: 下面是一个简单的C程序,用于创建表、插入数据和查询数据: ```c #include <stdlib.h> #include <stdio.h> #include <mysql.h> void create(MYSQL* conn_ptr) { int ret; ret = mysql_query(conn_ptr, "CREATE TABLE tl (ID INT, name CHAR(5), birthday DATE, PRIMARY KEY (ID))"); if (ret) { fprintf(stderr, "error: %s\n", mysql_error(conn_ptr)); } else { printf("Create correct!\n"); } } void insert(MYSQL* conn_ptr) { int ret; ret = mysql_query(conn_ptr, "INSERT INTO tl (ID, name, birthday) VALUES (10000, 'lv', '1989-02-09')"); if (ret) { fprintf(stderr, "error: %s\n", mysql_error(conn_ptr)); } else { printf("Insert correct!\n"); } } void output(MYSQL* conn_ptr) { // 状态变量 int ret = 0; // 查询结果 MYSQL_RES* res = NULL; MYSQL_ROW row = NULL; // 字段信息指针 MYSQL_FIELD* field; // 用于遍历字段 // 执行查询 ret = mysql_query(conn_ptr, "SELECT * FROM leiwei"); if (ret) { // 错误处理 fprintf(stderr, "error: %s\n", mysql_error(conn_ptr)); } else { // 存储查询结果 res = mysql_store_result(conn_ptr); if (res) { // 遍历列数 int colNum = mysql_num_fields(res); // 输出查询结果 while ((row = mysql_fetch_row(res))) { for (int i = 0; i < colNum; i++) { printf("%s ", row[i] ? row[i] : "NULL"); } printf("\n"); } // 释放结果集内存 mysql_free_result(res); } } } int main() { MYSQL* conn = mysql_init(NULL); if (!mysql_real_connect(conn, "localhost", "username", "password", "database", 0, "/tmp/mysql.sock", 0)) { fprintf(stderr, "Error: %s\n", mysql_error(conn)); exit(1); } create(conn); insert(conn); output(conn); mysql_close(conn); return 0; } ``` 这个程序首先初始化一个`MYSQL`结构体,然后连接到本地的MySQL服务器。在`create()`函数中创建了一个名为`tl`的表,`insert()`函数向表中插入一条记录,`output()`函数则查询并打印表中的所有数据。 请注意,你需要替换上述代码中的"localhost", "username", "password", 和 "database" 为实际的MySQL服务器地址、用户名、密码和数据库名。 在编写C连接MySQL的代码时,还需要关注错误处理,如通过`mysql_error()`函数获取MySQL运行时的错误信息。同时,连接关闭后要确保释放资源,避免内存泄漏。 总结起来,C语言连接MySQL涉及安装必要的开发库、编写包含连接、查询等操作的C代码,以及正确处理错误和资源管理。通过以上步骤,可以在Linux环境下实现C语言与MySQL数据库的交互。