任务二 使用MYSQLDUMP命令进行备份
知识点
1. 什么是MYSQLDUMP?它有什么特点?
答:MYSQLDUMP命令是MySQL提供的实现数据库备份的工具,在Windows控制台的命令行窗口中执行,存放在MySQL安装目录的Bin文件夹下。
MYSQLDUMP采用SQL级别的备份机制,它将数据表导出成SQL脚本文件,该文件包含多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据。在不同MySQL版本之间升级时相对比较合适,是最常用的备份方法。
2. MYSQLDUMP常用参数有哪些?
答:MYSQLDUMP常用参数包括:
--all-databases:备份所有数据库--databases dbname:备份某个数据库--lock-tables:锁定表--lock-all-tables:锁定所有的表--events:备份事件的相关信息--no-data:只备份DDL语句和表结构,不备份数据--master-data=n:备份同时导出二进制日志文件及其位置(n=1保存为CHANGE MASTER语句,n=2保存为注释)--routines:将存储过程和存储函数备份--single-transaction:实现热备份--triggers:备份触发器
3. 如何备份一个完整的数据库?
答:使用MYSQLDUMP备份单个数据库的语法格式:
mysqldump -u用户名 -h主机名 -p[密码] [--databases] 数据库名 > 备份文件名.sql
参数说明:
- -p参数用来引导密码,密码可以在此处指定,也可以在后续输入
- 若没加--databases参数,则备份文件中不包含创建数据库的语句,还原时需要向已存在的数据库中还原
- 执行时不需要登录到MySQL数据库,直接在DOS命令提示符窗口中执行
4. 如何备份多个数据库?
答:使用MYSQLDUMP备份多个数据库的语法格式:
mysqldump -u用户名 -h主机名 -p[密码] --databases 数据库名1 数据库名2 ... > 备份文件名.sql
例如:mysqldump -uroot -hlocalhost -p --databases student book > D:\db.sql 将student和book两个数据库备份到D盘的db.sql文件中,文件中包含创建这两个数据库及其表的SQL语句。
5. 如何备份所有数据库?
答:使用--all-databases参数备份所有数据库,语法格式:
mysqldump -u用户名 -h主机名 -p[密码] --all-databases > 备份文件名.sql
例如:mysqldump -uroot -hlocalhost -p --all-databases > D:\alldb.sql 将服务器中所有数据库备份到D盘的alldb.sql文件中。
使用--all-databases备份所有数据库时,备份文件中包含CREATE DATABASE语句和USE语句,还原时不需要创建数据库和指定操作数据库。
6. 如何备份数据库中的一个或多个表?
答:使用MYSQLDUMP备份指定表的语法格式:
mysqldump -u用户名 -h主机名 -p[密码] 数据库名 表名1 [表名2 ...] > 备份文件名.sql
例如:mysqldump -uroot -hlocalhost -p student Score Course > D:\stuDB_sql 将student数据库下的Score表和Course表备份到D盘的stuDB_sql文件中。
7. --databases参数的作用是什么?加与不加有什么区别?
答:--databases参数指定要备份的数据库:
- 加--databases:备份文件中包含CREATE DATABASE语句和USE语句,还原时不需要预先创建数据库
- 不加--databases:备份文件中不包含创建数据库的语句,还原时需要先创建并选择一个已存在的数据库才能还原
8. --no-data参数的作用是什么?
答:--no-data参数用于只备份表结构(DDL语句),不备份数据。适用于只需要数据库结构而不需要数据的场景,如在测试环境创建与生产环境相同结构的空表。
9. --single-transaction参数的作用是什么?
答:--single-transaction参数用于实现热备份,适用于InnoDB存储引擎。它可以在不锁定表的情况下获取一致性备份,备份期间数据库可以正常读写。这对于不能停机的生产环境非常重要。
10. --routines和--triggers参数的作用是什么?
答:
--routines:将存储过程和存储函数一起备份到SQL脚本文件中--triggers:将触发器一起备份到SQL脚本文件中
默认情况下MYSQLDUMP会备份触发器但不备份存储过程和函数,如果需要备份存储过程和函数,需要显式指定--routines参数。
11. MYSQLDUMP备份生成的SQL文件包含什么内容?
答:MYSQLDUMP备份生成的SQL文件包含:
- MySQL版本信息
- 备份的主机名
- CREATE DATABASE语句(如果使用了--databases或--all-databases)
- CREATE TABLE语句(创建表结构)
- INSERT语句(插入数据)
- 其他对象的定义语句(如存储过程、触发器、视图等,取决于参数设置)
12. 如何获取MYSQLDUMP的完整参数列表?
答:运行帮助命令 mysqldump --help 可以获得特定版本的完整参数列表。MYSQLDUMP提供了许多参数,包括用于调试和压缩的参数,实际使用时可根据需要选择合适的参数组合。