目录
一:mysqldump
mysqldump是安装MySQL的时候自带的一个客户端工具,可以利用mysqldump来实现对MySQL数据的备份
mysqldump具有以下特点:
1、mysqldump是一个单线程工具,所以数据量大的时候备份比较慢;
2、mysqldump如果没有添加 --single-transaction
选项可能会导致锁表的发生;
3、mysqldump属于逻辑备份工具,兼容性很好,不受MySQL版本的限制,不同版本的 MySQL基本上都能兼容;
4、mysqldump可以用来本分innodb引擎数据,也可以用来备份mysaim引擎的数据;
二:数据库备份
1. 单个数据库备份
备份单个数据库的所有数据,可以省略 --databases 选项,但是如果不加这个选项的话,备份的sql文件里面就没有
CREATE DATABASE 语句
和USE database_name 语句
。恢复数据的时候要自己手动创建好对应的数据库并切换到指定数据库下,所以为了方便一般情况还是加上;
语法格式:
mysqldump -h127.0.0.1 -uroot -predhat \
--quick --single-transaction \
--databases position_ehcommon > position_ehcommon.sql
参数说明:
1、--quick
:默认是将数据输出到内存后在写入文件,通过这个选项可以直接将数据写入文件,而不是先到内存,可以加快备份速度;
2、--single-transaction
:专门开启一个事务来执行备份,加上这个参数不会导致备份的时候锁表;mysaim引擎不支持事件,所以这个参数不生效;
2. 多个数据库备份
语法格式:
# 备份多个数据库,需要使用空格分隔每个数据库名
mysqldump -uroot -predhat --quick --single-transaction \
--routines --triggers --events \
--databases dbname1 dbname2 dbname3 > dbname_bak.sql
3. 所有数据库备份
–all-databases 表示备份所有数据库,MySQL自带的几个数据库不会备份
语法格式:
# MySQL自带的几个数据库不会被备份
mysqldump -uroot -predhat --quick --single-transaction \
--routines --triggers --events \
--all-databases > all_bak.sql
三:数据表备份
1. 单个数据表备份
语法格式:
# 需要先指定数据库的名称(不需要使用--databases参数),然后后面加需要备份的表名称
mysqldump -uroot -peHIGH2014 \
--quick --single-transaction databasename tb_name
2. 多个数据表备份
语法格式:
# 数据表之间使用空格分隔
mysqldump -uroot -predhat \
--quick --single-transaction \
databasename tb_name1 tb_name2 tb_name3
3. 只备份表的数据
–no-create-info 表示 备份文件中将仅包含数据插入语句 (INSERT) ,而不会包含表结构创建语句 (CREATE TABLE)
语法格式:
mysqldump -uroot -predhat \
--quick --single-transaction \
--no-create-info databasename tb_name1 tb_name2 tb_name3
4. 只备份表的结构
–no-data 表示 只导出表结构(CREATE TABLE 语句),而不包含数据插入语句 (INSERT)
mysqldump -uroot -predhat \
--quick --single-transaction \
--no-data databasename tbalename
三:其他信息备份
1. 只备份存储过程
mysqldump -uroot -predhat \
--no-data --no-create-info \
--routines mydatabase > routines_backup.sql
2. 只备份触发器
mysqldump -uroot -predhat --no-data --no-create-info \
--triggers mydatabase > triggers_backup.sql
3. 只备份事件
mysqldump -uroot -predhat \
--no-data --no-create-info \
--events mydatabase > events_backup.sql