Ubuntu10.04下C连接mysql数据库_第1页
Ubuntu10.04下C连接mysql数据库_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.安装mysql-server在Ubuntu10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1sudoapt-getinstallmysql-server-5.1CAPIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-devsudoapt-getinstalllibmysqlclient-dev假定已安装成功,相关文件如下:头文件在/usr/include/mysql目录下;库文件在/usr/lib/mysql和/usr/lib目录下启动和关闭mysql启动mysql:sudostartmysql关闭mysql:sudostopmysql使用psaux|grepmysql查看mysql启动状态ps命令用于查看当前系统中运行的进程信息,命令格式:ps[选项]常见参数:-a显示系统中所有进程,包括其他用户进程-e显示所有进程信息-f显示进程的所有信息-l显示长格式显示进程的信息-r只显示正在运行的程序-u以用户的格式显示进程信息-x显示所有终端上的进程信息最常用的方法是psaux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。例如前面使用的psaux|grepmysql链接库时需要库文件,有静态库文件,也有动态库文件,也有名字相同的静态库文件和动态库文件,如何区分:.o,.a,.so,.lo,.la后缀文件含义.o:编译的目标文件.a:静态库,其实就是把若干o文件打了个包.so:动态链接库(共享库)•Io:使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息.la:使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息la只有在用libtool编译应用程序或库时才用,即开发者只指明la文件,至于最终链接a还是so由libtool决定,不使用libtool的小程序用不上la。连接MySqla、连接到本机上的MYSQL:首先打开终端窗口,再键入命令mysql-uroot-p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysq卜b、修改密码,格式:mysqladmin-u用户名-p旧密码password新密码例1:给root加个密码ab12。首先打开终端窗口,然后键入以下命令:mysqladmin-urootpasswordab12.(注:因为开始时root没有密码,所以-p旧密码一项就可以省略了)。例2:再将root的密码改为djg345。mysqladmin-uroot-pab12passworddjg345(注:u与root可以不用加空格,其它也一样)。c、退出MYSQL命令:exit增加新用户(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)格式:grantselecton数据库.*to用户名@登录主机identifiedby“密码”例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:grantselect,insert,update,deleteon*.*totest1@“%”Identifiedby“abc”;但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby“abc”;如果你不想test2有密码,可再打一个命令将密码消掉。grantselect,insert,update,deleteonmydb.*totest2@localhostidentifiedby“”;显示命令:(注:下面来看看MYSQL中有关数据库方面的操作。注意:必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束)。a、显示数据库列表:showdatabases;刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。b、显示库中的数据表:usemysql;showtables;c、显示数据表的结构:describe表名;d、建库:createdatabase库名;e、建表:use库名;createtable表名(字段设定列表);f、删库和删表:dropdatabase库名;droptable表名;g、将表中记录清空:deletefrom表名;h、显示表中的记录:select*from表名;编写c代码,文件名:mysql.c//gccmysql.c-otest-I/usr/include/mysql-L/usr/lib-lmysqlclient#include<stdio.h>#include<string.h>#include<mysql.h>intmain(){MYSQLmysql;MYSQL_RES*res;MYSQL_ROWrow;charsql[50];intt;sprintf(sql,"select*fromStudent");//定义执行的SQL语句这里是test数据库里的Student表mysql_init(&mysql);//初始化mysql结构if(!mysql_real_connect(&mysql,"localhost","root","123456","test",3306,NULL,0))printf("\n数据库连接发生错误:%s\n",mysql_error(&mysql));elseprintf("\n数据库连接成功!\n");t=mysql_real_query(&mysql,sql,(unsignedint)strlen(sql));//在服务器上执行定义的SQL语句if(t)printf("查询语句错误:%s\n",mysql_error(&mysql));elseres=mysql_store_result(&mysql);while(row=mysql_fetch_row(res)){for(t=0;t<mysql_num_fields(res);t++)printf("%s",row[t]);printf("\n");}}printf("释放结果集的空间...\n");mysql_free_result(res);mysql_close(&mysql);//释放数据库printf("sqlerrror!%s\n",mysql_error(&mysql));//如果发生错误打印错误代码return0;}编译:gcc-cmysql

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论