Linux平台上用C语言实现与MySQL数据库的连接

时间:2025-01-25 21:32:56
  1. 安装编译工具 ---- 这将安装gcc/g++/gdb/make 等基本编程工具:

    sudo apt-get install build-essential

    Linux平台上用C语言实现与MySQL数据库的连接
  2. 输入命令"sudo apt-get install mysql",再连按2下Tab键,目的是查看自己当前的软件源中有关mysql的信息。

    Linux平台上用C语言实现与MySQL数据库的连接
  3. 我选择安装:

    sudo apt-get install mysql-server mysql-client

    Linux平台上用C语言实现与MySQL数据库的连接
  4. 输入命令"sudo apt-get install libmysql",再连按2下Tab键,查看自己当前的软件源中有关libmysql的信息。

    Linux平台上用C语言实现与MySQL数据库的连接
  5. 其他程序在编译使用MySQL时链接使用的库和头文件,我选择安装libmysqlclient-dev(选择安装其他的也可以,但不一定都能编译通过):

    sudo apt-get install libmysqlclient-dev

    Linux平台上用C语言实现与MySQL数据库的连接
  6. 查看安装的MySQL版本:

    mysql --version

    连接MySQL客户端函数库所需要的头文件的存放位置:

    mysql_config --cflags

    连接MySQL客户端函数库所需要的库文件的存放位置

    mysql_config --libs

    Linux平台上用C语言实现与MySQL数据库的连接
  7. 测试代码如下:

    //查询操作

    #include <mysql/mysql.h>

    #include <stdio.h>

    #include <stdlib.h>

    #define HOST "localhost"

    #define USERNAME "用户名"

    #define PASSWORD "密码"

    #define DATABASE "PublicResourcesDB"

    int main(void)

    {

    MYSQL mysql;

    MYSQL_ROW row;

    MYSQL_RES *result;

    unsigned int num_fields;

    unsigned int i;

    mysql_init(&mysql);

    if(!mysql_real_connect(&mysql, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, 0))

    {

    printf("Connection failed,%s\n",mysql_error(&mysql));

    }

    mysql_query(&mysql, "set names utf8");

    if(!mysql_query(&mysql,"SELECT * FROM area"))

    {

    result = mysql_store_result(&mysql);

    if(!result)

    {

    perror("result error.");

    exit(1);

    }

    num_fields = mysql_num_fields(result);

    while(row = mysql_fetch_row(result))

    {

    for(i=0; i<num_fields; i++)

    {

    printf("%s\t",row[i]);

    }

    printf("\n");

    }

    mysql_free_result(result);

    }

    mysql_close(&mysql);

    return 0;

    }

  8. 编译命令:

    gcc -o mysql_test mysql_test.c  `mysql_config --cflags --libs`

    (或者gcc -o mysql_test mysql_test.c  -lmysqlclient)

    运行命令:

    ./mysql_test

    运行后的结果和用MySQL Workbench查询出来的结果一样。

    Linux平台上用C语言实现与MySQL数据库的连接
    Linux平台上用C语言实现与MySQL数据库的连接
    Linux平台上用C语言实现与MySQL数据库的连接