Linux下编写简单C程序连接MySQL数据库,实现简单的增删查改操作

目录

 

1. Linux(Ubuntu)下MySQLMySQL Server的安装:

2. MySQL-client 和 mysql.h 库函数的安装:

3. 为root用户设置密码

4. 为root授予远程访问权限

5. 创建数据库,建立相应的表(在MySQL中建立了mydb数据库,里面有表test)

6. 编写C程序代码,连接数据库:

7. 编译、链接后运行程序。


 

 

1. Linux(Ubuntu)下MySQLMySQL Server的安装:

$sudo apt-get install mysql-server

2. MySQL-client 和 mysql.h 库函数的安装:

$sudo apt install mysql-client  

$sudo apt install libmysqlclient-dev

如果是Ubuntu 20.04 安装 mysql-8.0以上版本,可参考:

ubuntu 20.04 彻底删除mysql,并重装mysql-8.0.20

3. 为root用户设置密码

需要注意的一点是:MySQL8.0以上密码策略限制必须要大小写加数字特殊符号

4. 为root授予远程访问权限

 

Linux下编写简单C程序连接MySQL数据库,实现简单的增删查改操作_第1张图片

 

5. 创建数据库,建立相应的表(在MySQL中建立了mydb数据库,里面有表test)

Linux下编写简单C程序连接MySQL数据库,实现简单的增删查改操作_第2张图片

6. 编写C程序代码,连接数据库:

因为使用C语言连接到数据库涉及到很多函数,因此可以参考MySQL给的参考,里面的很多函数描述和代码实例也有助于快速掌握相关函数用法,具体参考:MySQL :: MySQL 8.0 C API Developer Guide :: 5.4 C API Basic Function Descriptions

①使用mysql_init()函数进行初始化。

②使用mysql_real_connect()函数进行连接。

③使用mysql_query()函数执行sql语句。

④如果是select之类的有结果集返回的sql语句,使用mysql_store_result()获取结果集。

⑤使用mysql_num_fields()、mysql_num_rows()、mysql_fetch_row()、mysql_fetch_fields()等函数对上述结果进行处理。

⑥使用mysql_free_result()释放结果集。

⑦错误处理会用到mysql_errno()、mysql_error()等函数。

 

以下给出了一个完整的C语言程序供参考:

#include 
#include 
MYSQL *conn;

bool myselect(char* sql_stat)
{
	//this function execute the "select ......" sql statement
	//return true if execute successfully ,return false if an error occurred!
	
	int row, field;
	MYSQL_RES* res_ptr;
	MYSQL_ROW  res_row;
	
	//query
	int res=mysql_query(conn,sql_stat);
	if(res)//return nonzero if an error occurred
	{
		fprintf(stderr,"Error %d: %s\n",
			mysql_errno(conn),mysql_error(conn));
		return false;
	}
	
	//get result
	res_ptr=mysql_store_result(conn);//mysql_use_result(conn);
	
	//get row number and fields number 
	row=mysql_num_rows(res_ptr);
	field=mysql_num_fields(res_ptr);
	printf("\t%d row(s) in test is displayed:\n",row);	
	
	//print the fields
	printf("\t-----------------------\n");
	for(int i=0;i

 

7. 编译、链接后运行程序。

$gcc -o mysqlconn.o mysqlconn.c  -L/usr/lib/mysql -lmysqlclient -I/usr/include/mysql

 

 

如果想要调试程序,可以参考:使用gdb调试程序完全教程

本文的文字或代码如有错误或不妥之处,还望大家帮忙指正,在此谢过!!!

你可能感兴趣的:(mysql,linux,c语言)