最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Linux下C语言连接MySQL_MySQL

来源:动视网 责编:小采 时间:2020-11-09 18:51:07
文档

Linux下C语言连接MySQL_MySQL

Linux下C语言连接MySQL_MySQL:bitsCN.com 首先保证安装:1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev 此时需要用到的头文件会出现在/usr/include/mysql/里C语言连接My
推荐度:
导读Linux下C语言连接MySQL_MySQL:bitsCN.com 首先保证安装:1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev 此时需要用到的头文件会出现在/usr/include/mysql/里C语言连接My
 bitsCN.com

首先保证安装:

1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev 此时需要用到的头文件会出现在/usr/include/mysql/里

C语言连接MySQL数据库

此包含两个步骤: 1. 使用函数mysql_init初始化一个连接句柄结构. mysql_init的函数定义如下:
MYSQL * mysql_init(MYSQL *);
通常传递NULL给这个例程,他会返回一个指向新分配的连接句柄结构的指针。如果传递一个已有的结构,它将会重新初始化。这个例程在出错时返回NULL.

2. 实际进行连接 目前只是分配和初始化了一个结构,仍然需要使用mysql_real_connect来向一个连接提供参数,
mysql_real_connect的函数定义:

MYSQL* mysql_real_connect(MYSQL* connection,	const char *server_host,	const char *sql_user_name,	const char *sql_password,	const char *db_name,	unsigned int port_number,	const char *unix_socket_name,	unsigned int flags);

指针connection必须指向已经被mysql_init初始化过的结构。

注意server_host既可以是主机名,也可以是IP地址。如果连接本地,可以制定localhost来优化。

sql_user_name和sql_password的含义和它们的字面意思一样。如果登录名为NULL,则假设登录名为当前Linux用户的登录ID,如果密码为NULL,则假设密码为空。

port_number和unix_socket_name应该分别为0和NULL,除非你改变了MySQL安装的默认设置。他们将默认使用合适的值。

最后,flags参数用来对一些定义的位模式进行OR操作,使得改变使用协议的某些特性。

如果无法连接,则返回NULL。mysql_error函数可以提供有帮助的信息。

3. 使用完连接,通常在程序退出前,要调用函数mysql_close;

mysql_close的函数定义:

void mysql_close(MYSQL *connection);
将关闭连接。

连接MySQL的示例:

#include #include #include "mysql.h"int main (int argc, char *argv[]) {	MYSQL *conn;	// 步骤1: 初始化连接句柄	conn = mysql_init(NULL);	if (conn == NULL) { // 如果返回NULl说明初始化失败	printf("mysql_init failed!/n");	return EXIT_FAILURE;	}	// 步骤2:实际进行连接	// 参数分别为,conn连接句柄,host是MySQL所在主机或地址,user用户名,password密码,database_name数据库名,后面的都是默认	conn = mysql_real_connect(conn, "host", "user", "password", "database_name", 0, NULL, 0);	if (conn) { // 连接成功	printf("Connection success!/n");	} else {	printf("Connection failed!/n");	}	// 步骤3: 退出前关闭连接	mysql_close(conn);	return 0;}

编译和运行:
gcc -I/usr/include/mysql test.c -L/usr/lib/mysql -lmysqlclient -o app

错误处理

错误处理的两个函数:

// 返回错误码unsigned int mysql_errno(MYSQL *connection);// 返回错误详细信息char* mysql_error(MYSQL *connection);
注意,当调用conn = mysql_real_connect(...), 时会遇到一个问题,因为它在失败时返回NULL指针,并没有提供一个错误码。但如果是将句柄作为一个变量,那么即使mysql_real_connect失败,也仍然能够处理它。
#include #include #include "mysql.h"#include "errmsg.h"#include "mysqld_error.h"void Error(MYSQL* conn) {	printf("Connection error %d: %s/n", mysql_errno(conn), mysql_error(conn));}int main (int argc, char *argv[]) {	MYSQL conn; // 是变量而不是指针	mysql_init(&conn); // 注意取地址符&	if (mysql_real_connect(&conn, "192.168.137.246", "root", "123456", "test", 0, NULL, 0)) {	printf("Connection success!/n");	mysql_close(&conn);	} else {	fprintf(stderr, "Connection failed!/n");	if (mysql_errno(&conn)) {	fprintf(stderr, "Connection error %d: %s/n", mysql_errno(&conn), mysql_error(&conn));	}	}	return EXIT_SUCCESS;}
bitsCN.com

文档

Linux下C语言连接MySQL_MySQL

Linux下C语言连接MySQL_MySQL:bitsCN.com 首先保证安装:1:安装MySQL:sudo apt-get install mysql-server mysql-client 2:安装MySQL开发包:sudo apt-get install libmysqlclient15-dev 此时需要用到的头文件会出现在/usr/include/mysql/里C语言连接My
推荐度:
标签: 链接 语言 数据库
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top