Linux 中使用mysqldump备份数据

一: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值