初学Windows下mysql的安装以及其C API使用

原创 2005年04月28日 20:55:00
主要介绍mysql在windows下的安装以及一些基本的应用.并且介绍了其CAPI的使用.一,      mysql的安装和使用。
1,      安装mysql,http://dev.mysql.com/downloads/下载mysql-4.0.23-win.zip,听说这个版本比较稳定,曾经下载过mysql-4.1.7-win.zip,但是不好用,老是启动的时候提示进程意外终止,下载完以后就一路next拉。
2,      启动mysql,进入c:/mysql/bin,点击winmysqladmin就好了,第一次进去的时候会要求填入用户名和密码的,以便在系统目录下生成my.ini文件。所以要注意在卸载mysql的时候一定要搜索一下my.ini,并且把他删除,免得他影响下一次的安装。不过以后启动就用net start mysql,关闭使用net stop mysql就好了。可以输入c:/mysql/bin/mysql来测试一下。
3,      用户管理,刚安装的时候只有两个用户,一个是root,一个是空,他们的密码都为空。我们先为root来设置口令。C:/mysql/bin/mysqladmin -u root password "1234567"。 mysql -u root -p.输入密码以后就可以看见mysql提示符了,
show databases;查看所有的数据库,记得一定要打后面的分号,回车只是换行。
use mysql; 选择数据库mysql,
show tables from mysql; 查看数据库mysql中的所有表格,在user表格中就记录了用户名,密码,用户权限等信息。
Select host,password,user from user; user里面列数太多了,看到这三个信息就差不多了,里面列出来了所有的用户名,以及允许登陆的地址。在这里先删除匿名用户,delete from user where user="",接着把host不是本地的删除,delete form user where host=www.*.com,现在就只剩下一个root用户可以从本地登陆我的数据库了。下面添加一个常用的用户,假定该用户可以从任意地址登录,并且拥有所有的权限,grant all privileges on *.* to sagely@"%" identified by ‘密码' with GRANT OPTION。再一次Select host,password,user from user;就可以看到多了一个sagely用户,他可以从任何地址登录,至于添加别的用户也是同理,只是可能权限控制不同,可以使用插入user中一条记录来实现,譬如insert into user values(‘localhost','sage',PASSWORD(‘123'),'Y','Y','Y','Y',,,,,);来实现,具体的Y还是N依照权限而定。这样就实现了对mysql数据库用户的管理。
4,      数据的插入、删除,修改和查询。
在这一部分,主要是应用了SQL语句。(在mysql命令行下)
create database ra; 创建一个名为ra的数据库。
Use ra; Create table usr_info(c varchar(15),st varchar(15),l varchar(15),o varchar(15),u varchar(15),cn varchar(15))创建一个名为usr_info的表,在表中有6个属性。
Insert into usr_info values("cn","dd","dd","dd","ee","ee")插入具体数据。等等,具体都和SQL语句是一样的。
二 ,C API的使用
1,      环境的设定
在VC里的toos->option->directories中将include增加一个c:/mysql/include,将lib增加一个c:/mysql/lib,将libmysql.dll和libmysql.lib拷到当前目录下,并且把libmysql.lib增加到工程中。
2,      建立与服务器的连接。
Include <mysql.h> //包含头文件
MYSQL *conn;//定义一个MYSQL类型结构,这个几乎在所有的后面的编程中都需要
MYSQL *mysql_init(MYSQL *conn);//如果conn=NULL,返回一个新分配的句柄结构返回,反之则重新初始化该结构,出现错误则返回NULL;
MYSQL *mysql_real_connect(MYSQL * connection,const char *server_host,const char *sql_urs_name,const char *sql_password,const char *db_name,unsigned int port_number,const char *unix_socket_name,unsigned int flags);//连接MYSQL服务器,里面的参数应该很清楚了,一般port_number和unix_socket_name的值为0和NULL。例如:
mysql_real_connect(conn_ptr,"localhost","sagely","secret","ra",0,NULL,0);
     void mysql_close(MYSQL *connection);关闭一个连接。
3,      执行SQL语句
mysql_select_db(MYSQL *connection,const char *db_name);选定某个数据库。
     int mysql_query(MYSQL *connection,const char *query)//他将执行query语句,运行成功将返回0,例如mysql_query(conn_ptr, Create table cert_info(...),将创建一个名为cert_info的表,几乎所有的SQL语句都能这么执行。呵呵,是不是显得很简单,他就和命令行中输入的SQL语句差不多。在使用上面函数的时候一般会使用
     my_ulonglong mysql_affected_rows(MYSQL *connection),这个函数返回的是mysql_query对进行改动的行的数量。
4,      处理检索到的数据
当我们可以执行SQL语句以后,那么就很容易执行增加删除修改等操作,但是假若检索出来的数据存储在哪里呢?
     MYSQL_RES *mysql_use_result(MYSQL *connection)这个函数得到一个连接对象返回一个结果集合指针,出错时返回NULL。不过他只是返回一个集合对象初始化来接收数据,并没有将任何检索到的数据返回到结果集合中。
     MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)这个函数获得mysql_use_resul得到的结果结构体,并从中检索单个行,并返回分配给行结构体的数据,没有更多数据或出错时,返回NULL。
     Unsigned int mysql_field_count(MYSQL *connection)它得到一个连接对象并返回在集合中字段的数目。
于是有上面的基础我们就可以理解下面这段了:(没有错误处理)
mysql_init(&conn_ptr);
mysql_real_connect(conn_ptr,"localhost","sagely","secret","ra",0,NULL,0);
mysql_query(conn_ptr,"SELECT * form usr_info);
res_ptr=mysql_use_result(&conn_ptr);
sqlrow=mysql_fetch_row(res_ptr);
for(int i=0;i<mysql_field_count(&conn_ptr);i++){printf("%s ",sqlrow);}
     MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *result)它返回的是列的信息,比如列的名称,列所在表名称等等,有了这个就可以将列标题与数据想对应起来了。

mysql C API使用

20 MySQL客户工具和API 20.1 MySQL C API C API代码是随MySQL分发的,它被包含在mysqlclient库且允许C程序存取一个数据 库。 在 MySQL源代...

mysql数据库 c api(一)

c连接mysql数据库 根据mysql 5.6 manual c api那一章,简述了一些重点,并没有注重细节,主要是为了一个大概整体的印象.任何一个东西学透,都是要花很大的功夫和精力.这里只简述u...
  • cdhql
  • cdhql
  • 2014年06月23日 20:30
  • 3362

MySQL连接数据库:C API代码, Linux,Windows

一、准备         yum install -y mysql.x86_64 mysql-devel.x86_64 二、代码 #include #include #include int...

CentOS使用MySQL的详细步骤,及C API编程

1.1 执行yum命令安装MySQL yum -y install mysql mysql-server 1.2 把添加MySQL进开机启动项,并立即启动MySQL chkconfi...

64位win7下使用C_API编写mysql程序的错误及解决办法记录

开发环境:64位win7+vc6+mysql5.5  端口号改成了3307. 工程类型:控制台应用程序  运行错误:错误对话框:应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用...
  • gh402
  • gh402
  • 2012年04月29日 15:40
  • 3194

使用C API操作mysql数据库

使用C API操作mysql数据库 转自:http://blog.csdn.net/lyjinger/article/details/1648898 说明:使用mysql提供的C API编程实现数...
  • qustdjx
  • qustdjx
  • 2012年09月26日 21:28
  • 1198

Mysql C API 使用(二)简单的sql语句执行&dbvisualizer设置自动提示

初始化及连接成功简单的sql语句执行 查询://查询 if (mysql_query(conn, "select * from newtable")){ print_error(conn, "m...

c使用mysql常用的api

1)my_bool mysql_change_user(MYSQL *mysql,const char *user,const char *password,const char *db) 2)vo...

Mysql C API 使用(一)

本文使用使用mysql 5.7.11+vs2013完成 下载安装mysql,可以参考我的博文。将头文件所在目录include添加到项目的包含目录。将库目录放到项目的库目录。向链接器->输入中添加:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初学Windows下mysql的安装以及其C API使用
举报原因:
原因补充:

(最多只允许输入30个字)