数据库实验5

感兴趣的小伙伴可以先看看我的这篇文章哦,打开看看,说不定能帮到你一些~~

金陵科技学院软件工程学院软件工程专业

1、备份数据库
(1)使用mysqldump备份数据库mydb中的表student;
①:在E盘新建一个名为Study的文件,然后进入命令行模式,输入如下内容,然后回车

mysqldump -uroot -p123456 mydb student > E:\Study\student.sql

在这里插入图片描述
②:打开E盘的Study文件夹,里面多了一个student.sql文件,数据库mydb中的表student备份成功。
在这里插入图片描述

(2)使用mysqldump备份数据库mydb到C盘backup目录下;
①:在C盘创建一个名为backup的文件夹,然后进入命令行模式,输入如下内容,然后回车

mysqldump -uroot -p123456 mydb > C:\backup\mydb.sql

在这里插入图片描述
②:打开C盘的backup文件夹,里面多了一个mydb.sql文件,数据库mydb备份成功。
在这里插入图片描述

(3)备份MySQL服务器上所有数据库;
①:进入命令行模式,输入如下内容,回车
注:
因为在SQL语句中,单行注释用–(两个减号),所以,这里后面的–all-databases > C:\backup\all.sql被注释掉了,但是不管,直接把整行内容都给输入进去然后回车。MySQL中用命令一次性备份所有数据库的写法就是这样的。

mysqldump -uroot -p123456 --all-databases > C:\backup\all.sql

在这里插入图片描述
②:打开C盘的backup文件夹,里面多了一个all.sql文件,MySQL服务器上所有数据库备份成功。
在这里插入图片描述
2、恢复数据库
假设数据库mydb遭遇损坏,试用该数据库的备份文件mydb.sql将其恢复
注:
这里题目要求假设数据库mydb遭遇损坏,我所选择的损坏是直接删除数据库mydb。
①:在workbench中右击数据库mydb,点击Drop Schema,然后点击Drop Now,删除数据库mydb。
在这里插入图片描述
在这里插入图片描述
②:进入命令行模式,登录mysql
在这里插入图片描述
按照如下操作创建数据库mydb,创建成功后查看所有的数据库,确定数据库mydb在里面
注:
因为上面删掉了数据库mydb,那么,要想恢复数据库mydb,则必须先重新创建该名为mydb的数据库,然后再去输入下面步骤里的恢复命令并执行。否则,如果是在上面删除数据库mydb之后,没有先重新创建该名为mydb的数据库,直接输入下面步骤里的恢复命令并执行的话,则会报ERROR 1049 (42000): Unknown database 'mydb’的错误。
在这里插入图片描述
③:关掉此窗口,然后重新进入命令行模式,输入如下内容,回车
注:
一个小细节,这里是恢复数据库,因此中间写的是<,而如果是备份的话则中间写的是>。因为备份是导出,恢复是导入,导出用>,然后后面跟着路径,代表将数据库或者表导出到那个路径下,导入用<,然后后面跟着路径,代表从这个地方进行导入,导入该文件到相应的数据库中,结合着理解。

mysql -uroot -p123456 mydb < C:\backup\mydb.sql

在这里插入图片描述
补充:
这里在恢复数据库mydb的时候,也可以选择按照如下的方式来一下恢复所有的数据库。在命令行中输入如下内容,然后回车。这时要记得加上–default-character-set=utf8,因为MySQL默认以gbk编码连接数据库,而之前导出的备份文件是utf8编码,所以,如果不加上–default-character-set=utf8,则会因为编码不一致而导致错误。这里后面被注释掉的原因在上面备份所有数据库时已经解释过了,此处不再赘述。同样,这里也是直接把整行输入进去然后执行就好。值得注意的是,如果在第一步删除数据库mydb之后,不像第二步那样去重新创建名为mydb的数据库,然后接着恢复它,而是直接执行这步,恢复全部的数据库,则不会报上面所说的错误,而是会正常恢复好数据库mydb。

mysql -uroot -p123456 --default-character-set=utf8 < C:\backup\all.sql

⑤:进入workbench,可以看到先前删除的数据库mydb已被恢复,而且和原来的一样
在这里插入图片描述
3、用户管理
(1)使用MySQL新建一个用户“stu1”。
①:在workbench中输入如下内容,然后执行,成功创建用户“stu1”
注:
在这条命令中,第一个stu1是用户名,localhost是主机名,即用户连接 MySQL 时所用主机的名字,第二个stu1是密码。在MySQL中使用create user来创建用户的格式正是如此。这里补充一点,如果在创建用户的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。

create user 'stu1'@'localhost' identified by 'stu1';

在这里插入图片描述

(2)为“stu1”用户授权可以对mydb数据库中的学生表student进行查看、修改的权限。
①:在workbench中输入如下内容,然后执行

grant select, update on mydb.student to 'stu1'@'localhost';

在这里插入图片描述
②:输入如下内容,然后执行,查询“stu1”用户的权限,为“stu1”用户授权成功

show grants for 'stu1'@'localhost';

在这里插入图片描述
3)为“stu1”用户收回对mydb数据库中的学生表student进行修改的权限。
①:在workbench中输入如下内容,然后执行

revoke update on mydb.student from 'stu1'@'localhost';

在这里插入图片描述
②:输入如下内容,然后执行,查询“stu1”用户的权限,“stu1”用户对mydb数据库中的学生表student进行修改的权限已被删除

show grants for 'stu1'@'localhost';

在这里插入图片描述

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spiderman_94

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值