数据库原理与应用 第 10 章 · 上机一
课程第 10 章上机一 两层皮备一张表一次两张带不带建库句全都备上只备一部分拆成两半连起来 版式
第 10 章 数据库备份还原和日志管理 · 上机一

用 mysqldump 备份

七道题把备表、备库、备结构、备数据、备一部分全敲一遍,每份都用 type 打开看。
已完成 0 / 7
本 次 上 机 题 目
  1. 01先分清命令提示符和 mysql 提示符
  2. 02第一条 mysqldump,把 s 表存成文件
  3. 03表名之间用空格隔开
  4. 04--databases 差在哪儿
  5. 05--all-databases 一网打尽
  6. 06--where 后面跟条件
  7. 07结构一份,数据一份
  8. 一口气把四种备份都做一遍
01
第 10 章 · 上机一

先分清命令提示符和 mysql 提示符

在命令行敲 SQL 会报错,进去之后敲 mysqldump 也会报错。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

提示符是 bin> 就是在 Windows 里,是 mysql> 就是在服务器里,两边认的命令不一样。

分清楚谁在哪儿敲

命令在哪儿敲
mysqldump命令提示符
SELECTmysql>

想一想

mysqldump 为什么不能在 mysql> 里敲?

02
第 10 章 · 上机一

第一条 mysqldump,把 s 表存成文件

库名后面跟表名,末尾用大于号指到一个文件。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

命令跑完一声不响才是对的,敲 dir 看见文件才算成了。

知道更多

文件里先是 DROP TABLE 和 CREATE TABLE,然后才是一句长长的 INSERT。

03
第 10 章 · 上机一

表名之间用空格隔开

跟几个表名就备几张表,不是逗号。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

写成逗号,mysqldump 会把 s,c 当成一张表的名字去找,然后报找不到。

练一练

一次备三张表怎么写?
  1. Ateaching s,c,sc
  2. Bteaching s c sc
  3. Cteaching (s,c,sc)
答案 B

库名后面挨个跟表名,中间只用空格。

04
第 10 章 · 上机一

--databases 差在哪儿

同一个库备两遍,一遍不加参数一遍加,对着看文件头。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

t2 开头多了 CREATE DATABASE 和 USE 两句,还原时不用先建库。

分清楚两份文件

文件开头有没有建库句
t1.sql没有
t2.sql
05
第 10 章 · 上机一

--all-databases 一网打尽

所有库连系统库一起备,文件会明显大一圈。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

对着 dir 出来的字节数看,全库那份比单库那份大得多。

想一想

系统库也备下来了,还原的时候会不会把现在的账号覆盖掉?

06
第 10 章 · 上机一

--where 后面跟条件

只备年龄小于十八的那几行。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

只有一行 INSERT,里面就那个十七岁的学生。

知道更多更正

课件那句用了中文引号,而且末尾没写 > 文件名,结果只是打在屏幕上。

07
第 10 章 · 上机一

结构一份,数据一份

一个参数只留建表语句,另一个只留数据。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

一份里一条 INSERT 都没有,另一份里一条 CREATE 都没有,加起来才是完整的。

练一练

只有数据那份文件,能直接还原到一个空库里吗?
  1. A
  2. B不能,表还没建
  3. C看引擎
答案 B

它只有 INSERT,表不存在就没处插。得先用结构那份把表建出来。

第 10 章 · 上机一

一口气把四种备份都做一遍

整库、单表、只结构、只数据,四份文件摆在一起看。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
这台终端一开始停在命令提示符上。mysqldump 只能在这儿敲,SQL 要先 mysql -u root -p123456 进去。root 的口令是 123456。
mysql>

重 点

四份文件的大小排下来,一眼就知道各自装了多少东西。

想一想

四份里哪一份最小?

保山学院·人工智能教研室·曹鼎鼎