Linux下C语言操作MySQL

来源:互联网 发布:淘宝飞鸽电动车怎么样 编辑:程序博客网 时间:2024/05/17 06:49

1. MySQL数据库简介

MySQL是一个开源码的小型关系数据库管理系统,体积小,速度快,总体成本低,开源。MySQL有以下特性:

(1) 使用C和C++编写,并使用了多种编译器进行测试,保证源码的可移植性。

(2) 支持多线程,利用CPU资源,支持多用户。

(3) 可以处理拥有上千万条记录的大型数据库。

(4)既可以作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为 一个库而嵌入到其他软件中去。


2. MySQL数据库的安装 安装MySQL数据库需要三个软件包:

(1)服务器

(2)客户端

(3) 开发库-如果用C或C语言开发,就得安装开发库。

MySQL-server-5.5.8-1.rhel5.i386.rpm

MySQL-client-5.5.8-1.rhel5.i386.rpm

MySQL-devel-5.5.8-1.rhel5.i386.rpm 在Linux下用rpm -ivh 安装即可。


3. MySQL的相关目录

/usr/bin MySQL客户端程序或脚本

/usr/sbin mysqld服务器相关程序

/var/lib/mysql 日志文件,数据库数据文件存放目录

/usr/share/doc/packages 使用手册,开发文档存放目录

/usr/include/mysql 接口函数库头文件存放目录

/usr/lib/mysql 接口函数动态链接库存放目录

/usr/share/mysql 错误消息和字符集文件存放目录

/usr/share/sql-bench 基本程序存放目录


4. MySQL数据库的基本操作

--查看linux系统下是否装有: cd /etc/init.d/mysqld/

--启动MySQL : /etc/init.d/mysqld  start

--进入MySQL界面:mysql

[ ]中的内容为可选项
--创建数据库
mysql> create database 数据库名称
--创建表
mysql> create table 表名 (列的名字(id)类型(int(4))primary key(定义主键) auto_increment(描述 自增),……,);
eg: create table stu(name char(20), num int(4), age int(2),  sex char(1) );
--查看所有数据库
mysql> show databases ;
--使用某个数据库
mysql> use 数据库名称;
--查看所使用数据库下所有的表
mysql> show tables;
--显示表的属性结构
mysql> desc 表名;
--选择表中数据的显示
--* 代表选择所有列 ,
mysql> select * from 表名 where id=?[and name=?] [or name=?];
eg: select *from stu;
mysql> select id,name from 表名order by 某一列的名称 desc(降序,asc为升序)
--表中添加数据
mysql> insert into 表名 values();
eg:insert into musictable values('1.wav','/home/2Stage/Project/music');
--删除表中的数据
mysql> delete from table where id=?[or name=? (and name=?)];
eg:delete from stu where name="xiaoming";
--删除表
mysql> drop table;
--删除数据库
mysql> drop database;
--退出mysql
mysql>quit
--创建一个新的用户
mysql>grant select,delete,insert on *.* to user_1@localhost identified by "123";
             grant ---权限----on 数据库.数据库中所有表  用户名@ 使用地方(%表示所有地方)identified by 密码
--进入创建的用户 :mysql -u user_1 -p
                          : 密码

5. MySQL数据搬家
(1)查看MySQL数据存放位置: ls /var/lib/mysql/
(2)home目录下新建: mkdir /home/data
     mv /var/lib/mysql/  /home/data
(3)修改配置文件:vim /etc/my.cnf
                           第3行:socket=/var/lib/mysql/mysql.sock   改为  socket=新建路径
(4)修改配置文件:vim /etc/rc.d/init.d/mysqld
                           第51行:get_mysql_option mysqld datadir "/var/lib/mysql"   改为:get_mysql_option mysqld datadir "新建路径"


 
6. C语言操作MySQL数据库
 代码1:

编译:gcc test.c -o test -lmysqlclient -L/usr/lib/mysql
   或:gcc test.c -o test  $(mysql_config --cflags)  $(mysql_config  --libs)
解释:
(1) mysql_config --cflags 寻找mysql编译相关的头文件等信息。
(2) mysql_config --libs   寻找mysql编译所需要的库函数。
(3) -L/usr/lib 指出静态库寻找的路径。在这里也可以不写,因为系统会去默认的/lib,/usr/lib去寻找库函数。如果libmysqlclient.a在/usr/lib/mysql下,那么-L/usr/lib/mysql 这个目录。
(4)非标准的库函数,链接时用-lmysqlclient.原库名为libmysqlclient.a去掉lib和.a。
(5) -I是包含头文件等信息,及include .(6) 动态链接库的寻找顺序:
a. LD_LIBRARY_PATH设置的目录下.
b. /etc/ld.so.conf 加到这个文件中的目录。
c. 默认的 /usr/lib,/lib目录下。
(7)头文件的寻找顺序
a. -I所指定的目录中去寻找 
b.gcc的环境变量指定的目录C_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJC_INCLUDE_PATHc. /usr/include /usr/local/include 等目录下寻找。
(8)静态库的寻找顺序
a. -L所指定的静态库寻找路径
b.gcc环境变量LIBRARY_PATH
c. /lib ,/usr/lib,/usr/local/lib
代码2:

参考文章:点击打开链接


0 0