Linux - 操作mysql数据库

发布时间 2023-06-28 15:41:04作者: [BORUTO]

运行环境

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函数初始化失败会返回NULL
mysql_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

好了,程序成功编译,运行一下试试吧: