《数据库服务器》PPT课件.ppt
1,第 12 章 数据库服务器,2,12.1 Linux下数据库简介,Oracel、Sybase、MySQL等都开发了Linux下的数据库版本。,12.2 MySQL数据库简介,MySQL是TCX公司开发的一个多人使用的SQL资料库Server。MySQL主要目标在快速、稳定和容易使用。MySQL是Linux最常用的数据库系统。,3,12.3 MySQL数据库安装,基于RPM包的MySQL安装#rpm ivh#rpm ivh使用如下命令检测是否安装了MySQL#rpm-qa|grep-i mysql,4,安装完MySQL后,相关信息如下1、数据库目录/var/lib/mysql/2、配置文件/usr/share/mysql例如,mysql.server命令及配置文件3、相关命令/usr/bin例如mysqladmin,mysqldump等命令 4、启动脚本/etc/rc.d/init.d/mysql,5,12.4 启动与退出MySQL数据库系统,启动:#mysql h 主机地址 u 用户名 p 用户密码 如果连接成功,出现以下提示符:mysql退出:mysqlquit(或exit);,6,12.5 MySQL常用操作,(1)show databases;/显示数据库列表(2)use 数据库名;/打开数据库 show tables;/显示数据库中的数据表(3)describe 表名;/显示数据库中的表结构(4)create database 数据库名;/新建数据库(5)use 数据库名;/新建表 create table 表名(列名 数据类型,);,7,12.5 MySQL常用操作,(6)alter table 表名 modify 字段;/修改表结构(7)insert into 表名(列名,)values(数据,);/向表插入记录(8)select 字段列表 from 表名称 where 条件;/显示表的记录(9)update 表名 set 字段名=值 where 条件;/更新表中数据(10)delete from 表名 where 条件;/删除表中的数据,8,12.5 MySQL常用操作,(11)grant 权限 on 对象 to 用户名登录主机 identified by 密码;/新增用户并授予权限(12)revoke 权限 on 对象 from 用户名登录主机/回收用户权限(13)drop database 数据库名;/删除数据库 drop tabale 表名;/删除表(14)MySQL数据库的导出与导入#mysqldump-u 用户名-p 数据库名备份的文件名/导出mysqlsource/lx/sydatabak.sql/导入,9,(15)几个常用的函数mysql select version(),database(),now();mysql user(),select current_date;,12.5 MySQL常用操作,10,mysql提示符的含义,12.5 MySQL常用操作,(16)Mysql提示符的含义,11,作业题,P243 3,12,操作题,1、使用mysql(1)查看当前的数据库(2)添加一个数据库student,在库中加入一个表xgl,字段包括:id 整数,name 10个可变字符,手机号,11个字符类型(3)显示student数据库的所有表(4)通过文件将xgl表需要的数据输入(5)显示xgl表中所有的数据,13,操作题,2、在mysql中,建立一个用户user,口令为123456;授权他只能查询sydt库中的db表;可以查询、更新、添加、删除stu表,并允许该用户从本地或者远程都可以登录mysql数据库服务器。请进行测试.,14,实验六 MySQL数据库系统的管理与维护,在实验前,建立/lx文件夹,/lx/文件夹下建立文件input.txt,内容如下:#vi/lx/input.txtn赵刚19天津n张强21南京n苏彤彤18北京n徐志林19南京n刘海20福州注意,数据之间的分隔符为Tab键输入的存盘退出,15,(1)在数据库服务器以adminroot用户登录#mysql-u adminroot-p输入密码:654321mysql出现mysql提示符,说明登录成功。,16,(2)在数据库服务器上建立如下用户并授予相应的权限:(a)建立用户useradmin,具有对数据库sydata操作的所有权限,密码为123,登录的主机为任意客户端mysqlgrant all on sydata.*to useradmin%identified by 123;(b)建立用户isuser,具有对数据库sydata插入,检索权限,密码为234,登录的主机为任意客户端mysqlgrant insert,select on sydata.*to isuser%identified by 234;,17,(c)建立用户ususer,具有对数据库sydata更新,检索权限,密码为345,登录的主机为任意客户端mysqlgrant update,select on sydata.*to ususer%identified by 345;(d)建立用户sduser,具有对数据库sydata删除,检索权限,密码为456,登录的主机为任意客户端mysqlgrant delete,select on sydata.*to sduser%identified by 456;,18,(3)以useradmin用户名在客户端登录数据库服务器,创建数据库sydata,在该数据库中建立表sytable,表列为 id:int(3),name:char(6),age:int(2),addr:varchar(50).其中id为主键,不能为空并且为自动增一,name和age不能为空,addr缺省值为大连市.(a)登录数据服务器#mysql-h 数据库服务器的IP地址-u useradmin-p输入密码mysql出现mysql提示符说明登录数据库服务器成功,19,(b)创建数据库sydata,并在其中创建表sytablemysqlcreate database sydata;mysqlshow databases;mysqluse sydata;mysqlcreate table sytable(id int(3)auto_increment not null primary key,name char(6)not null,age int(2)not null,addr varchar(50)default 大连市);,20,mysqldescribe sytable;后,查询表sytable结构。如果正确,转向步骤(4);如果不正确,要修改表sytable结构,使其满足题中的要求mysqlalter table sytable 修改的字段;,21,(4)以isuser用户名在客户端登录数据库服务器,向表sytable中插入二条记录,(李红,20,沈阳市),(王燕,19,上海市)#mysql-h 数据库服务器的IP地址-u isuser-p输入密码mysqlmysqluse sydata;mysqlinsert into sytable(name,age,addr)values(李红,20,沈阳市);mysqlinsert into sytable(name,age,addr)values(王燕,19,上海市);,22,使用另外一种方法向表sytable中添加记录mysqlload data local infile/lx/input.txt into table sytable;查看结果是否正确,如果不正确,查找原因,如果需要删除表sytable中的记录,需要使用sduser登录数据库,使用delete from sytable where 条件.,23,(5)以ususer用户名在客户端登录数据库服务器,将表sytable中姓名为苏彤彤的改为苏丹丹#mysql-h 数据库服务器的IP地址-u ususer-p输入密码mysqlmysqluse sydata;mysqlupdate sytable set name=苏丹丹 where name=苏彤彤;mysqlselect*from systable;查看结果是否正确,如果不正确,查找原因,进行修改,24,(6)以sduser用户名在客户端登录数据库服务器,将表sytable中地址为南京的记录删除#mysql-h 数据库服务器的IP地址-u sduser-p输入密码mysqlmysqluse sydata;mysqldelete from sytable where addr=南京;mysqlselect*from systable;查看结果是否正确,如果不正确,查找原因,进行修改,25,(7)以isuser用户名在客户端登录数据库服务器#mysql-h 数据库服务器的IP地址-u isuser-p输入密码mysqlmysqluse sydata;mysqlcreate table xx;mysqlupdate sytable set name=赵刚 where name=赵彤彤;mysqldelete from sytable where age=19;查看结果,结论是什么同样以ususer用户名登录数据库服务器,验证是否有建立,插入,删除权限;以sduser用户名登录数据库服务器,验证是否有建立,插入,更新权限;,26,(8)在数据库服务器以adminroot用户登录#mysql-u adminroot-p输入密码:654321mysql(a)收回用户sduser的删除权限mysqlrevoke delete on sydata.*from sduser;在客户端以用户名sduser登录数据库服务器,查看是否还有对数据sydata中的表sytable的删除权限(b)导出/导入数据库#mysqldump-u sduser-p sydata/lx/sydatabak.sql/导出 mysqlcreate sydata2;mysqluse sydata2;mysqlsource/lx/sydatabak.sql/导入 mysqlshow tables;,27,(c)删除数据库mysqldrop database sydata;mysqldrop database sydata2;mysqlshow databases;查看结果,是否删除数据sydata(d)删除用户useradmin,isuser,ususer,sdusermysqluse mysql;mysqldelete from user where user=useradmin;mysqldelete from user where user=isuser;mysqldelete from user where user=ususer;mysqldelete from user where user=sduser;mysqlflush privileges;/刷新权限表,28,(9)在客户端,验证以用户名useradmin,isuser,ususer,sduser登录数据库服务器,是否能登录成功(10)在客户端删除/lx文件夹#rm-rf/lx,