返回 导航

其他

hangge.com

MySQL - 数据库备份与恢复教程1(使用mysqldump)

作者:hangge | 2020-12-17 08:10
    日常工作中,我们常常需要对 MySQL 数据库进行备份,常用的备份工具有 mysqldumpmysqlhotcopyxtrabackup 等。这些工具的备份原理和备份方式都各不相同:
  • MySQL 自带的 mysqldump 属于逻辑备份工具(备份出来的是 SQL 格式的转储文件),mysqldump 比较适用于小的数据库,因为是逻辑备份,所以备份和恢复耗时都比较长。也不能实现增量备份。
  • mysqlhotcopy xtrabackup 则属于物理备份(备份出来的是数据文件的二进制副本),备份和恢复速度快,可以在不影响数据库服务情况下进行热拷贝(其中 mysqlhotcopy 只适用于 MyISAM 引擎的表,而 xtrabackup 只能备份 innoDBxtraDB 两种数据引擎的表)。并且 xtrabackup 还支持增量备份。
    本文首先介绍如何使用 mysqldump 进行数据库的备份,以及通过备份文件对数据库进行恢复。

一、使用 mysqldump 备份数据库

1,备份单个数据库

(1)下面命令将 hangge 数据库(包含数据库里的所有表)备份到 backdb.sql 文件中:
mysqldump -uroot -p hangge > backdb.sql

(2)下面命令只备份 hangge 数据库里的 peopleanimal 两张表:
mysqldump -uroot -p hangge people animal > backdb.sql

2,备份多个数据库

下面命令备份 hangge mydb 这两个数据库:
mysqldump -uroot -p --databases hangge mydb > backdb.sql

3,备份所有数据库

下面命令可以备份系统中所有的数据库:
mysqldump -uroot -p --all-databases > backdb.sql

4,备份文件使用时间命名

(1)下面命令将备份文件命名为“年月日.sql”形式:
mysqldump -uroot -p hangge > $(date +%F).sql

(2)下面命令将备份文件命名为“年月日时分秒.sql”形式:
mysqldump -uroot -p hangge > $(date +%F-%T).sql

5,压缩备份

下面命令备份时会直接将备份文件打成一个压缩包:
mysqldump -uroot -p hangge |gzip>backdb.sql.gz

附:恢复数据库

1,从 sql 文件中恢复

我们登入数据库后,使用 source 命令即可进行恢复。恢复时会先删表(如果还存在的话)再创建并恢复数据。
注意:如果是单库备份文件的话,执行 source 命令前需要先选择数据库。
source backdb.sql

2,从压缩包中恢复

(1)如果我们备份时自动将 sql 文件达成压缩包的话,恢复时需要先对其解压:
gzip -d backdb.sql.gz

(2)然后再登入数据库,使用 source 命令进行恢复。
source backdb.sql
评论

全部评论(0)

回到顶部