实验六 MySQL数据库系统的管理与维护
一、实验目的
熟练掌握MySQL数据库的基础知识及常用的MySQL操作命令与用户权限管理。
二、实验环境
Red Hat Linux 9操作系统。
三、实验结果
每位同学登录数据库服务器,建立自己的用户并授予不同的权限;使用不同的用户登录数据库,进行相关操作。
四、实验前准备
1、在linux下,建立/lx文件夹,/lx/文件夹下建立文件input.txt,内容如下:
注意,数据之间的分隔符使用Tab键输入
#vi /lx/input.txt
\n 赵刚 19 天津
\n 张强 21 南京
\n 苏彤彤 18 北京
\n 徐志林 19 南京
\n 刘海 20 福州
存盘退出
2、连接和断开数据库
连接数据库
#mysql -h主机IP地址 -u用户名 –p
输入该用户密码,如果连接成功,出现以下提示符:
mysql>
断开数据库
mysql>quit(或exit);
#
五、实验内容及步骤
1、在客户端以adminroot用户登录数据库服务器
#mysql -h 数据库服务器的IP地址 -u adminroot -p
输入密码:
mysql>
出现mysql提示符,说明登录数据库服务器成功。
建立如下用户并授予相应的权限:
(1) 建立用户useradmin序号,具有对数据库sydata序号操作的所有权限,密码为'123',登录的主机为任意客户端
mysql>grant all on sydata序号.* to useradmin序号@'%' identified by '123';
(2) 建立用户isuser序号,具有对数据库sydata序号插入,检索权限,密码为'234',登录的主机为任意客户端
mysql>grant insert,select on sydata序号.* to isuser序号@'%' identified by '234';
(3) 建立用户ususer序号,具有对数据库sydata序号更新,检索权限,密码为'345',登录的主机为任意客户端
mysql>grant update,select on sydata序号.* to ususer序号@'%' identified by '345';
(4) 建立用户sduser序号,具有对数据库sydata序号删除,检索权限,密码为'456',登录的主机为任意客户端
mysql>grant delete,select on sydata序号.* to sduser序号@'%' identified by '456';
mysql>exit; //退出数据库
2、在客户端以useradmin序号用户登录数据库服务器,创建数据库sydata序号,在该数据库中建立表sytable,表列为 id:int(3),name:char(6),age:int(2),addr:varchar(50).
其中id为主键,不能为空并且为自动增一,name和age不能为空,addr缺省值为大连市.
(1) 登录数据服务器
#mysql -h 数据库服务器的IP地址 -u useradmin序号 -p
输入密码
mysql>
出现mysql提示符,说明登录数据库服务器成功
(2) 创建数据库sydata序号,并在其中创建表sytable
mysql>create database sydata序号; //创建数据库
mysql>show databases; //显示数据库
mysql>use sydata序号; //打开数据库
mysql>create 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 '大连市'); //创建表
建立成功后,查询表sytable结构
mysql>describe sytable; //查询表结构
如果正确,转向步骤(3);如果不正确,要修改表sytable结构,使其满足题中的要求
mysql>alter table sytable 修改的字段;
mysql>exit;
3、在客户端以isuser序号用户登录数据库服务器,向表sytable中插入二条记录,('李红',20,'沈阳市'),('王燕',19,'上海市')
#mysql -h 数据库服务器的IP地址 -u isuser序号 -p
输入密码
mysql>
mysql>use sydata序号; //打开数据库
mysql>insert into sytable (name,age,addr) values('李红',20,'沈阳市'); //向表插入记录
mysql>insert into sytable (name,age,addr) values('王燕',19,'上海市');
mysql>select * from sytable; //查看表信息
成批向表sytable中添加记录
mysql>load data local infile "/lx/input.txt" into table sytable;
//成批向表插入记录
查看结果是否正确,如果不正确,查找原因,如果需要删除表sytable中的记录,需要使用sduser序号登录数据库,使用delete from sytable where 条件.
mysql>exit;
4、在客户端以ususer序号用户登录数据库服务器,将表sytable中姓名为'苏彤彤'的改为'苏丹丹'
#mysql -h 数据库服务器的IP地址 -u ususer序号 -p
输入密码
mysql>
mysql>use sydata序号; //打开数据库
mysql>update sytable set name='苏丹丹' where name='苏彤彤'; //更新表记录
mysql>select * from sytable; //查看表记录
查看结果是否正确,如果不正确,查找原因,进行修改
mysql>exit;
5、在客户端以sduser序号用户登录数据库服务器,将表sytable中地址为'南京'的记录删除
#mysql -h 数据库服务器的IP地址 -u sduser序号 -p
输入密码
mysql>
mysql>use sydata序号; //打开数据库
mysql>delete from sytable where addr='南京'; //删除表中符合条件的记录
mysql>select * from sytable; //查看表记录
查看结果是否正确,如果不正确,查找原因,进行修改
mysql>exit;
6、在客户端以isuser序号用户登录数据库服务器
#mysql -h 数据库服务器的IP地址 -u isuser序号 -p
输入密码
mysql>
mysql>use sydata序号; //打开数据库
mysql>create table xx; //新建表
结果是什么?
mysql>update sytable set name='赵刚' where name='赵彤彤';
结果是什么?
mysql>delete from sytable where age=19;
查看结果?
最后的结论是什么?
同样以ususer序号用户登录数据库服务器,验证是否有建立,插入,删除权限;
以sduser序号用户登录数据库服务器,验证是否有建立,插入,更新权限;
mysql>exit;
7、在客户端以adminroot用户登录数据库服务器
#mysql -h 数据库服务器的IP地址 -u adminroot -p
输入密码
mysql>
收回用户sduser序号的删除权限
mysql>revoke delete on sydata序号.* from sduser序号@'%';
在客户端以sduser序号用户登录数据库服务器
#mysql -h 数据库服务器的IP地址 -u sduser序号 -p
输入密码:
mysql>
mysql>use sydata序号; //打开数据库
mysql>delete from sytable; //删除表中所有记录
结果是什么?
结论是什么?
mysql>exit;
8、导出/导入数据库
(1) 数据库的导出
在客户端
#mysqldump -h 数据库服务器的IP地址 -u sduser序号 -p sydata序号>/lx/sydatabak.sql //数据库的导出
输入用户sduser序号的密码
(2) 数据库的导入
在客户端以adminroot用户登录数据库服务器,创建数据库sydata序号+2
#mysql -h 数据库服务器的IP地址 -u adminroot -p
输入密码
mysql>
mysql>create database sydata序号+2; //创建数据库sydata序号+2
mysql>use sydata序号+2; //打开数据库
mysql>source /lx/sydatabak.sql //数据库的导入
mysql>show tables; //显示表
mysql>select * from sytable; //显示表中的数据
mysql>exit;
9、删除数据库及用户
在客户端以adminroot用户登录数据库服务器
#mysql -h 数据库服务器的IP地址 -u adminroot -p
输入密码
mysql>
(1) 删除数据库
mysql>drop database sydata序号; //删除数据库
mysql>drop database sydata序号+2;
mysql>show databases; //显示数据库
查看结果,是否删除数据库sydata序号及sydata序号+2
(2) 删除用户useradmin序号,isuser序号,ususer序号,sduser序号
mysql>use mysql; //打开数据库
mysql>delete from user where user='useradmin序号'; //删除用户useradmin序号
mysql>delete from user where user='isuser序号'; //删除用户isuser序号
mysql>delete from user where user='ususer序号'; //删除用户ususer序号
mysql>delete from user where user='sduser序号'; //删除用户aduser序号
mysql>flush privileges; //刷新权限表
mysql>exit;
10、在客户端,验证以用户名useradmin序号,isuser序号,ususer序号,sduser序号登录数据库服务器,是否能登录成功
11、在客户端删除/lx文件夹
#rm -rf /lx