运行环境
Ubuntu20.04 虚拟机
Mysql 8.0 API libmysqlclient-dev
gcc 9.4.0
一、准备工作
1、在Ubuntu上准备mysql开发环境
更新软件源
sudo apt update
安装libmysqlclient-dev
,这个lib库是Linux下C/C++连接mysql的客户端
sudo apt install libmysqlclient-dev
2、创建测试数据库与表
创建一个名为C_DB
的数据库,在库中建立一张名为C_TBL
的表
CREATE DATABASE C_DB;
USE C_DB;
CREATE TABLE C_TBL(
ID INT PRIMARY KEY AUTO_INCREMENT,#主键且自增
NAME VARCHAR(32),
SEX VARCHAR(8)
);
二、建立与mysql的连接
1、在C文件中引入头文件
在C文件中引入头文件#inlude <mysql.h>
通过MYSQL mysql;
创建一个mysql结构体对象MYSQL
结构体定义在mysql.h
里
#include<mysql.h>
#include<stdio.h>
#include<string.h>
int main()
{
MYSQL mysql;
}
2、初始化mysql与数据库的通道
mysql_init
函数初始化失败会返回NULLmysql_error
是mysql API提供的标准错误
if(mysql_init(&mysql) == NULL)
{
printf("%s",mysql_error(&mysql));
return -1;
}
3、与mysql建立真实连接
先在文件最前面定义一些宏,方便后面使用
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
int main()
{
//固定不变的
MYSQL mysql; //一个数据库结构体
MYSQL_RES* res; //一个结果集结构体
MYSQL_ROW row; //char** 二维数据,存放一条条记录
//初始化数据库
mysql_init(&mysql);
//设置编码方式
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库 //ip地址 //用户名 //密码 //数据库名
if (mysql_real_connect(&mysql, "192.168.237.131", "root", "123456", "C_DB", 3306, NULL, 0))
{
printf("数据库连接成功!\n");
}
else
{
printf("错误原因:%s\n", mysql_error(&mysql));
printf("数据库连接失败!\n");
exit(-1);
}
return 0;
}
将上述代码保存为test_MySql.c。上述代码中,我们需要包含mysql.h头文件来使用mysql提供的API对MySQL进行操作。程序写好了,编译过程需要加入需要的链接信息:
sudo gcc -I/usr/include/mysql test_MySql.c -L/usr/lib/mysql -lmysqlclient -o test_mysql.o
好了,程序成功编译,运行一下试试吧:
标签:printf,mysql,数据库,Linux,DB,MYSQL,include From: https://www.cnblogs.com/zhuchunlin/p/17511551.html