mysqldump备份数据

标签(空格分隔): mysql


1 导出数据库

1.1 导出所有数据库

mysqldump -uroot -p  --all-databases > all.sql;

1.2 导出单个数据库

mysqldump -uroot -p  db1 > db1.sql;

1.3 导出多个数据库

mysqldump -uroot -p  --databases db1 db2 > db1-db2.sql

1.4 只备份表结构

mysqldump -uroot -p  --no-data  db1 > db1.structure.sql;

2 导出表

导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据

2.1 导出单个表

mysqldump -uroot -p  db1  tb1 > db1.tb1.sql;

2.2 导出多个个表

mysqldump -uroot -p  --databases db1 --tables tb1 tb2   > db1.tb1-tb2.sql;

2.3 只备份表结构

mysqldump -uroot -p  --no-data  db1  tb1 > db1.tb1.structure.sql;

3 恢复数据

shell> mysql db_name <  db1.sql

或者

shell> mysql -e "source /path-to-backup/db1.sql"  db_name

4 跨主机备份

mysqldump --host=host1 -uroot -ppwd1   sourceDb | mysql --host=host2 -uroot -ppwd2 -C targetDb

-C指示主机间的数据传输使用数据压缩

5 定时备份

新建 shell 脚本

#vi /backup/backup.sh

#!bin/bash
cd /backup

mv backup* /oldbackup
echo "Old dbs are moved to oldbackup folder"
now=$(date +%Y-%m-%d-%H-%m)
file = "backup-$now.sql"

mysqldump -u user -p password database-name > $file

echo "Your database backup successfully completed"

上面脚本文件保存为backup.sh,并且系统中已经创建两个目录/olcbackup和/backup。每次执行backup.sh时都会先将/backup目录下所有名称为backup开头的文件移到/oldbackup目录。

为上述脚本制定执行计划如下:

#crontab -e
30 1 * * * /backup.sh

6 条件备份

mysqldump -uroot -p  --databases db1 --tables tb1 --where='id=1'  >/tmp/db1.tb1.sql

7 导出存储过程和自定义函数

mysqldump  -uroot -p --host=localhost --all-databases --routines

参考
mysqldump — A Database Backup Program

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 3,641评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 常用数据库备份工具:mysqldump:mysql工具包自带(数据库比较小)xtrabackup:比较好的备份工具...
    词穷又词贫阅读 1,369评论 0 0
  • 你皮是你皮 你皮任你皮 你是真的皮 不如就把你当瓜皮
    伊博士阅读 264评论 0 0
  • 要 A:别想太多,你现在时间多得很。与其浪费在漫无目的的逛网页上,不如拿来学学编程。 B:…现在学英语和文案。(蚊...
    鸡仔说阅读 355评论 0 0