2. linux Mysql与c语言连

linux 下c语言连接mysql

初接触mysql并且连接c语言的时候,在网上找了很多资料,实际用到的很少,所以在成功之后做个总结。

c语言连接mysql必须下载数据库连接器,这里是mysql-connecter-c

1. 安装mysql_server 和 mysql_client,linux下一般不用源码安装而直接apt-get 或 yum安装的话,这两个都会自动安装。

2. 下载mysql-connecter-c源码,可以去本人上传的资源下载,本人是64位linux系统,不确定其它是否可用。

3. 安装cmake

要安装此连接器必须安装cmake

1)apt-get install cmake  安装cmake

2)下载cmake源码包安装

3)不同linux安装命令不同

4. tar zxvf ... 解压此文件

1)cd  进入此目录

2)cmake -G "Unix Makefiles"
3)make
4)make install

5. 在此目录下

1)1)cp -r /usr/local/mysql/bin/ /usr/bin
2)cp -r /usr/local/mysql/lib/  /usr/lib
3) cp -r /usr/local/mysql/include/ /usr/include 
这样在包含头文件时,就可以直接写成#include<mysql.h>


6. 编写*.c连接数据库程序

 
例如:test.c
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "mysql.h"
 
int main(void)
{
        MYSQL *conn_ptr;
        MYSQL_RES *res;
        MYSQL_ROW row;
 
        char *host = "127.0.0.1";
        char *user = "root";
        char *password = "";
        char *db = "mysql";
        unsigned int port = 0;
        char *unix_socket = NULL;
        unsigned long client_flag = 0;
 
        conn_ptr = mysql_init(NULL);
        if(!conn_ptr)
        {
                fprintf(stderr, "init mysql failed\n");
                return(-1);
        }
 
        conn_ptr = mysql_real_connect(conn_ptr, host, user, password, db, port, unix_socket, client_flag);
        if(conn_ptr)
        {
                printf("Connection success......\n");
        }
        else
        {
                fprintf(stderr, "Connection failed......%d:%s\n", errno, strerror(errno));
        }
 
 
        if( mysql_query(conn_ptr, "select host,user from user"))
        {
                fprintf(stderr, "call mysql_query failed......%d:%s\n",errno, strerror(errno));
        }
 
        res = mysql_use_result(conn_ptr);

         fprintf(stdout, "select host, user from user talbe in the mysql database:\n");
 
 
        while((row = mysql_fetch_row(res)))
        {
                fprintf(stdout, "%s\t%s\n", row[0], row[1]);
        }
 
 
        mysql_free_result(res);
        mysql_close(conn_ptr);
        return 0;
}

7. 编译连接test.c

 gcc test.c -o test -Wall -L /usr/lib/lib  -lmysqlclient
在运行程序之前,一定要开启mysql服务
/etc/init.c/mysql start //开启mysql

#./test  运行结果

Connection success......
select host, user from user talbe in the mysql database:
127.0.0.1       root
localhost
localhost       root

自己实践,已经在使用中
部分参考http://blog.chinaunix.net/uid-26758020-id-3289515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值