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需要的文件一般都是libmysql.h等文件

 

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

 

二:修改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

 

声明:本文档可以随意更改,但必须署名原作者

                    

作者:凤凰舞者 qq:578989855

 

你可能感兴趣的:(c,数据库,mysql,null,语言,include)