日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Linux C连接Mysql

發(fā)布時(shí)間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux C连接Mysql 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先確定系統(tǒng)上安裝了GCC和MYSQL了沒有,

如果沒有先安裝.CentOS用

yum -y install gcc

yum -y install mysql-server

此外還必須安裝mysql-devel

安裝成功檢測(cè):

[root@liu mysql]# rpm -qa | grep 'gcc'  
libgcc-4.4.7-4.el6.x86_64
gcc-4.4.7-4.el6.x86_64
[root@liu mysql]# rpm -qa | grep 'mysql'
mysql-5.1.73-3.el6_5.x86_64
mysql-devel-5.1.73-3.el6_5.x86_64
mysql-libs-5.1.73-3.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64

然后啟動(dòng)mysql

service mysqld start

進(jìn)入Mysql創(chuàng)建數(shù)據(jù)庫(kù)和表

mysql> create database c_test;
mysql> use c_test
CREATE TABLE `user` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`name`  varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
;
mysql> insert into user(name) values('張三'),('李四'),('王五');
mysql> select * from user;
+----+--------+
| id | name   |
+----+--------+
|  1 | 張三 |
|  2 | 李四 |
|  3 | 王五 |
+----+--------+
3 rows in set (0.00 sec)

?

創(chuàng)建mysql.c

/*============================================================================Name        : connect.cAuthor      : 風(fēng)飄無(wú)痕Version     :Copyright   : Your copyright noticeDescription : Connect Mysql============================================================================*/#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>MYSQL *g_conn; // mysql 連接
MYSQL_RES *g_res; // mysql 記錄集
MYSQL_ROW g_row; // 字符串?dāng)?shù)組,mysql 記錄行#define MAX_BUF_SIZE 1024 // 緩沖區(qū)最大字節(jié)數(shù)const char *g_host_name = "localhost";
const char *g_user_name = "root";
const char *g_password = "123456";
const char *g_db_name = "c_test";
const unsigned int g_db_port = 3306;void print_mysql_error(const char *msg) { // 打印最后一次錯(cuò)誤if (msg)printf("%s: %s\n", msg, mysql_error(g_conn));elseputs(mysql_error(g_conn));
}int executesql(const char * sql) {/*query the database according the sql*/if (mysql_real_query(g_conn, sql, strlen(sql))) // 如果失敗return -1; // 表示失敗return 0; // 成功執(zhí)行
}int init_mysql() { // 初始化連接// init the database connectiong_conn = mysql_init(NULL);/* connect the database */if(!mysql_real_connect(g_conn, g_host_name, g_user_name, g_password, g_db_name, g_db_port, NULL, 0)) // 如果失敗return -1;// 是否連接已經(jīng)可用//if (executesql("set names utf8")) // 如果失敗// return -1;return 0; // 返回成功
}int main(void) {if (init_mysql());print_mysql_error(NULL);char sql[MAX_BUF_SIZE];if (executesql(sql))print_mysql_error(NULL);if (executesql("select * from user")) // 句末沒有分號(hào)
        print_mysql_error(NULL);g_res = mysql_store_result(g_conn); // 從服務(wù)器傳送結(jié)果集至本地,mysql_use_result直接使用服務(wù)器上的記錄集int iNum_rows = mysql_num_rows(g_res); // 得到記錄的行數(shù)int iNum_fields = mysql_num_fields(g_res); // 得到記錄的列數(shù)
printf("共%d個(gè)記錄,每個(gè)記錄%d字段\n", iNum_rows, iNum_fields);puts("id\tname\n");while ((g_row=mysql_fetch_row(g_res))) // 打印結(jié)果集printf("%s\t%s\n", g_row[0], g_row[1]); // 第一,第二字段
mysql_free_result(g_res); // 釋放結(jié)果集
mysql_close(g_conn); // 關(guān)閉鏈接return EXIT_SUCCESS;
}

?

編譯

gcc -g -o mysql -I/usr/include/mysql/ connect.c -L/usr/lib64/mysql/ -lmysqlclient -lz

編譯的時(shí)候要注意用到2個(gè)路徑,mysql.h和libmysqlclient.so的路徑

查找mysql.h路徑

[root@liu mysql]# find / -name 'mysql.h'  
/usr/include/mysql/mysql.h

?

[root@liu mysql]# find / -name '*mysqlclient*' 
/usr/lib64/mysql/libmysqlclient_r.so.16.0.0
/usr/lib64/mysql/libmysqlclient.so.16
/usr/lib64/mysql/libmysqlclient_r.so.16
/usr/lib64/mysql/libmysqlclient_r.so
/usr/lib64/mysql/libmysqlclient.so
/usr/lib64/mysql/libmysqlclient.so.16.0.0

運(yùn)行:

[root@liu mysql]# ./mysql 

運(yùn)行結(jié)果:

共3個(gè)記錄,每個(gè)記錄2字段
id      name1       張三
2       李四
3       王五

一定要保持?jǐn)?shù)據(jù)表編碼,C文件編碼的一致性,否則會(huì)出現(xiàn)亂碼

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/lywy510/p/3615710.html

總結(jié)

以上是生活随笔為你收集整理的Linux C连接Mysql的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。