Linux平台上用C语言实现与MySQL数据库的连接
-
安装编译工具 ---- 这将安装gcc/g++/gdb/make 等基本编程工具:
sudo apt-get install build-essential
-
输入命令"sudo apt-get install mysql",再连按2下Tab键,目的是查看自己当前的软件源中有关mysql的信息。
-
我选择安装:
sudo apt-get install mysql-server mysql-client
-
输入命令"sudo apt-get install libmysql",再连按2下Tab键,查看自己当前的软件源中有关libmysql的信息。
-
其他程序在编译使用MySQL时链接使用的库和头文件,我选择安装libmysqlclient-dev(选择安装其他的也可以,但不一定都能编译通过):
sudo apt-get install libmysqlclient-dev
-
查看安装的MySQL版本:
mysql --version
连接MySQL客户端函数库所需要的头文件的存放位置:
mysql_config --cflags
连接MySQL客户端函数库所需要的库文件的存放位置
mysql_config --libs
-
测试代码如下:
//查询操作
#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;
}
-
编译命令:
gcc -o mysql_test mysql_test.c `mysql_config --cflags --libs`
(或者gcc -o mysql_test mysql_test.c -lmysqlclient)
运行命令:
./mysql_test
运行后的结果和用MySQL Workbench查询出来的结果一样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 7 个最近很火的开源项目「GitHub 热点速览」
· DeepSeekV3:写代码很强了
· 记一次 .NET某固高运动卡测试 卡慢分析
· Visual Studio 2022 v17.13新版发布:强化稳定性和安全,助力 .NET 开发提
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题