mysqldump
# 300.mysqldump
mysqldump是MySQL提供的备份工具,可以将整个数据库或者指定的表格导出为一个SQL脚本文件。
# 为什么要备份
在数据库管理中,备份是非常重要的操作。
在笔者的公司里,所有系统的数据库都强制定期备份,并且采用“321原则”:数据要有3份,至少采用2种介质,1份数据保存在异地
如果不备份,万一开发人员误删了数据,或者磁盘坏了,那基本就完了。国内外都有不少这样的事故:
- 微盟:程序员“删库跑路”,公司市值蒸发超10亿,300万商铺遭瘫痪 (opens new window)
- 链家: 国内又一起“删库跑路”事件:程序员怒删公司9TB数据,判刑7年 - 知乎 (opens new window)
- ....
# 常用操作示例
1.备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
1
2.备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
1
3.备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
1
4.备份单个数据库的数据和结构(假设单个数据库名为mydb)
mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
1
5.备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
1
6.备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
1
7.备份多个表的数据和结构(数据,结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
1
8.一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql
1
# 还原 MySQL 备份内容
此时就用到了我们之前学过的source命令,或者在MySQL命令里传入SQL文件即可:
1.mysql命令:
mysql -uroot -p123456 < /data/mysqlDump/mydb.sql
1
2.source命令:
mysql> source /data/mysqlDump/mydb.sql
1
# 怎么定时?
如果是在Linux上,可以考虑使用crontab,或者定时手工操作
如果是在Windows上,也有类似的定时操作
# 参考
上次更新: 2024/1/23 16:20:41