操作系统是Linux,需要mysql客户端软件开发库libmysqlclient,这个函数库是mysql的组成部分之一。
一般头文件都在/usr/include/mysql路径下,库文件都在/usr/lib/mysql路径下。
如果没有需要安装mysql-devel包(mysql-devel-5.1.47-4.el6.i686.rpm)
[**@**]# rpm -ivh mysql-devel-5.1.47-4.el6.i686.rpm
安装完成后可以去那两个路径下看看有没有,如果没有就查找一下
[**@**]# find / -name mysql.h
[**@**]# find / -name mysqlclient
看一下路径在哪里。
安装完成后,就可以编译连接C源程序了。
[**@**]#
gcc -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient *.c
编译成功即可运行。
解释下:
gcc GNU C/C++编译器
-I指定头文件所在路径(大写i)
-L 指定库文件所在路径
-l 与所需要的动态链接库链接起来(小写L)
这么长的编译命令一般都在make文件里面写了
关于动态链接库可以添加一个环境变量
[**@**]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usrlib/mysql
不过一劳永逸的办法是:将这句话LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usrlib/mysql添加在.bashrc里面
最后源码:
#include <stdio.h>
#include <mysql.h>
int main(int argc, char *argv[])
{
int i;
MYSQL *conn; // connection to MySQL server
MYSQL_RES *result; // result of SELECT query
MYSQL_ROW row; // one record (row) of SELECT query
// connect to MySQL
conn = mysql_init(NULL);
// mysql_options(conn, MYSQL_READ_DEFAULT_GROUP, "myclient");
if(mysql_real_connect(
conn, "localhost", "root", "uranus", //此处更改用户名密码
"mylibrary", 0, NULL, 0) == NULL) {
fprintf(stderr, "sorry, no database connection ...\n");
return 1;
}
// only if utf8 output is needed
mysql_query(conn, "SET NAMES 'utf8'");
// retrieve list of all publishers in mylibrary
const char *sql="SELECT COUNT(titleID), publName \
FROM publishers, titles \
WHERE publishers.publID = titles.publID \
GROUP BY publishers.publID \
ORDER BY publName";
if(mysql_query(conn, sql)) {
fprintf(stderr, "%s\n", mysql_error(conn));
fprintf(stderr, "Fehlernummer %i\n", mysql_errno(conn));
fprintf(stderr, "%s\n", sql);
return 1;
}
// process results
result = mysql_store_result(conn);
if(result==NULL) {
if(mysql_error(conn))
fprintf(stderr, "%s\n", mysql_error(conn));
else
fprintf(stderr, "%s\n", "unknown error\n");
return 1;
}
printf("%i records found\n", (int)mysql_num_rows(result));
// loop through all found rows
while((row = mysql_fetch_row(result)) != NULL) {
for(i=0; i < mysql_num_fields(result); i++) {
if(row[i] == NULL)
printf("[NULL]\t");
else
printf("%s\t", row[i]);
}
printf("\n");
}
// de-allocate memory of result, close connection
mysql_free_result(result);
mysql_close(conn);
return 0;
}
分享到:
相关推荐
在我们做C项目用到mysql数据库时需要进行和mysql进行连接,而连接mysql的步骤中几乎时固定的,因此可以写在文件中保存以备用。(文件中main函数中两个printf函数的输出为测试结果,调用连接函数前为NULL,调用连接...
linux下C语言连接mysql数据库.docx
C语言连接MySQL数据库
使用C语言连接MYSQL数据库源代码
linux下C语言连接MySQL数据库.docx
linux下C语言连接mysql的样例 * 需先安装mysqlclient库 * linux下C语言连接mysql的样例 * */ #include #include #include<mysql/mysql.h> void create(MYSQL *conn_ptr) { int ret; ret = mysql_query(conn_...
此文档使用GTK+2.0做了一个小的界面,不过不怎么完整,采用C语言连接MYSQL数据库 代码能运行的前提是: 1.这是centos上的一个小程序,需要在linux的环境下(不知道能否在windows上) 2.linux上装有MYSQL数据库 3....
C连接MySql5.1所需文件.rar 附带一个不错的例子: #include #include #include #include #include <mysql>/*注意要包含这个头文件*/ #pragma comment(lib,libmysql) /*定义了一些数据库连接需要的宏*/ #...
Ubuntu下C语言访问MySQL数据库入门 https://blog.csdn.net/xiajun07061225/article/details/8505987
使用C语言控制台结合mysql数据库实现简单的图书管理系统,适合初学者学习之用
用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作
C语言连接数据库,并对MySQL数据库中的数据进行增删改查 代码简洁,其中的display函数只是为了测试方便,可以删除
教你如何使用devc++ 连接mysql数据库 内含所需头文件以及mysql的库
用于C语言与MySQL连接的详细文档,上面有VC与数据库连接的配置,很实用
用C语言实现连接mysql数据库的操作,新手可借鉴一下!
c语言连接mysql