一、常用参数
参数 | 参数说明 |
-A(--all-databases) | 备份全库 |
-B(--databases) | 备某一个数据库下的所有表 |
-R, --routines | 备份存储过程和函数数据 |
--triggers | 备份触发器数据 |
--master-data={1|2} | 告诉你备份后时刻的binlog位置 如果等于1,则将其打印为CHANGE MASTER命令,记录对应二进制位置; 如果等于2,那么该命令将以注释符号为前缀,单纯的想获取二进制日志文件的位置。 |
--single-transaction | 对innodb引擎进行热备 |
-F, --flush-logs | 刷新binlog日志 |
-x, --lock-all-tables | 锁定所有数据库的所有表。这是通过在整个转储期间采用全局读锁来实现的。 |
-l, --lock-tables | 锁定所有表以供读取 |
-d | 仅表结构 |
-t | 仅数据 |
--compact | 减少无用数据输出(调试) |
一个完整的备份语句: innodb引擎的备份命令如下: mysqldump -A -R --triggers --master-data=2 --single-transaction >school.sql 适合多引擎混合(例如:myisam与innodb混合)的备份命令如下:
mysqldump -A -R --triggers --master-data=2 >school.sql |
二、mysqldump备份操作
首先介绍一下,mysqldump命令中-u后边跟用户名,-h后面跟主机IP或主机名,-p是输入密码
1.备份school数据库下的所有表:
mysqldump -uroot -hlocalhost school -p
备份数据库下的表,包含生成创建数据库的语句:
mysqldump -uroot -hlocalhost --databases school -p
备份数据库下多个表:
mysqldump -uroot -hlocalhost school student teacher -p
'--all-databases'备份所有数据库:
mysqldump -uroot -hlocalhost --all-databases -p
'-d'备份数据库中的表结构,不包含表数据,不包含创建数据库的语句,只用创建表的语句:
mysqldump -uroot -hlocalhost -d school teacher -p
2.表用innodb存储引擎时常用的备份语句
未开启二进制日志,备份指定的school数据库
[root@web01 ~]# mysqldump -uroot -hlocalhost --single-transaction --routines --triggers --events --databases school -p > school.sql
开启二进制日志
[root@web01 ~]# mysqldump -uroot -hlocalhost --flush-logs --master-data=2 --single-transaction --routines --triggers --events --databases school -p > school2.sql
备份所有数据库,把--databases换成--all-databases即可
3.表使用myisam存储引擎时常用备份语句
未开启二进制日志,备份指定的school数据库
[root@web01 ~]# mysqldump -uroot -hlocalhost --routines --triggers --events --lock-tables --databases school -p >school.sql
开启二进制日志
[root@web01 ~]# mysqldump -uroot -hlocalhost --flush-logs --master-data=2 --routines --triggers --events --lock-tables --databases school -p >school.sql
备份所有数据库
[root@web01 ~]# mysqldump -uroot -hlocalhost --flush-logs --master-data=2 --routines --triggers --events --lock-all-tables --all-databases -p >school.sql