C语言连接Mysql

C语言连MySQL使用教程

系统环境:

Ubuntu8.04

一:安装

从官方网站下载

需要的软件有:

MySQL-server ,MySQL-client,MySQL-bench,MySQL-devel,MySQL-shared

其实上面的几个文件,最需要的是MySQL-server ,MySQL-client,我下载的是

还有mysql-connector-c-6.0.2-linux-glibc2.3-x86-32bit.tar.gz

下载地址是:http://dev.mysql.com/downloads/connector/c/6.0.html#Red_Hat_Enterprise_Linux_5_(non_RPM_packages)

实际上就从www.mysql.com 下载就可以了。细心的可能会发现在http://dev.mysql.com/downloads/ 这个页面,还有MySQL Workbench

这个可能就是上面我所说的MySQL-devel文件。

其实要这些文件干什么,就是为了用C语言连接MYSQL 。那么连接MYSQL需要的文件一般都是lib和mysql.h等文件

下面,先安装MYSQL的MySQL-server ,MySQL-client,然后解压mysql-connector-c-6.0.2-linux-glibc2.3-x86-32bit.tar.gz 即可,实际上解压完后,我们需要的文件就只有三个文件夹,bin,include,lib 。

二:修改root密码

用set password语句来修改用户的密码,三个步骤 “先mysql -u root登陆数据库系统” 然后“mysql> update mysql.user set password=password('newpwd')” 最后执行“flush privileges”就可以了。

注意:上面的newpwd是你所修改完后的密码。即,修改完密码后,数据库的密码就是newpwd,你可以用其他密码替代。

三:建立数据库

使用c语言操作mysql之前,先在mysql里头创建一个数据库,一个表,在表里头添加数据如下:

创建数据库,库名为cusemysql:
mysql>create database cusemysql;
创建表,表名为:
mysql>use cusemysql;
mysql>create table children(childno int not null unique,fname varchar(20),age int);
添加一点数据哦:
mysql>insert into children values(5,"花儿",10);

四:编写代码

/*insert.c*/

#include <stdio.h>

#include "mysql.h"

#include <stdlib.h>

#include <syslog.h>

// #include "/usr/local/mysql/include/mysql/mysql.h"

int main(int argc,char *argv[])

{

MYSQL my_connection;

int res;

mysql_init(&my_connection);

/* if(mysql_real_connect(&my_connection,"localhost","root","123456","cusemysql",0,NULL,CLIENT_FOUNT_ROWS))

*/

// 上面的这行代码是错的,网上的这行代码是错的

/*if(mysql_real_connect(&my_connection,"localhost","root","123456","cusemysql",0,NULL,0))

*/

/* if(mysql_real_connect(&my_connection,"172.29.141.110","root","123456","cusemysql",0,NULL,0)) */ //套解字的问题

//下面这行意思是连接mysql ,用户:root ,密码:123456,数据库:cusemysql,

//而127.0.0.1的意思是本机回路ip,开始用我的ip172.29.141.110,可是不能连接,

//后来就改成127.0.0.1

//具体为什么连不上是因为MySQL的配置有关,有关配置,请查阅网上资料,

//配置文件一般是/etc/mysql/my.cnf ,可以用locate my.cnf查看具体路径

if(mysql_real_connect(&my_connection,"127.0.0.1","root","123456","cusemysql",0,NULL,0))

{

printf("Connection success\n");

res=mysql_query(&my_connection,"insert into children values(10,'Ann',5)");

if(!res)

{

printf("insert %lu rows\n",(unsigned long)mysql_affected_rows(&my_connection));

}

else

{

fprintf(stderr,"insert error %d:%s\n",mysql_errno(&my_connection),mysql_error(&my_connection));

}

mysql_close(&my_connection);

}

else

{

fprintf(stderr,"Connection failed\n");

if(mysql_errno(&my_connection))

{

fprintf(stderr,"Connection error %d:%s\n",mysql_errno(&my_connection),mysql_error(&my_connection));

}

}

return EXIT_SUCCESS;

}

五:编译

gcc insert.c -I/home/cyq/桌面/mysql-connector/include -L/home/cyq/桌面/mysql-connector/lib -lmysqlclient

六:运行

./a.out

七:注意:

1,在上面的各个操作中,一定注意文件的权限问题。比如库文件的调用需要相应的权限。

2,如果提示有文件找不到,需要把相应的文件COPY到相应的目录.

八:参考:

http://blog.csdn.net/chinalinuxzend/archive/2009/06/02/4236354.aspx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值