1. 前言

MySQLdump 是 MySQL 自带的导出数据工具,用于将 MySQL 服务器中的数据库以标准的 sql 语言的方式导出,并保存到文件中。Mysqldump 是一个客户端逻辑备份的工作,备份的 SQL 文件可以在其他 MySQL 服务器上进行还原。

数据库很重要,没有备份,只能跑路。所以还是做好备份吧!

2. 备份和恢复

mysqldump 的帮助信息可以使用 mysqldump --help 命令查看。

2.1 基本备份

格式:

mysqldump -u{username} -p{password} --default-character-set=utf8mb4 --single-transaction --skip-tz-utc {database} > {file.sql}

示例:

mysqldump -uhomestead -psecret --default-character-set=utf8mb4 --single-transaction --skip-tz-utc blog > ~/code/blog.sql

恢复:

mysql -uhomestead -psecret blog < ~/code/blog.sql

2.2 备份并压缩

格式:

mysqldump -u{username} -p{password} --default-character-set=utf8mb4 --single-transaction --skip-tz-utc {database} | gzip > {file.sql.gz}

示例:

mysqldump -uhomestead -psecret --default-character-set=utf8mb4 --single-transaction --skip-tz-utc blog | gzip > ~/code/blog.sql.gz

2.3 备份数据库中的表

格式:

mysqldump -u{username} -p{password} --default-character-set=utf8mb4 --single-transaction --skip-tz-utc {database} {table1} {table2} > {file.sql}

示例:

mysqldump -uhomestead -psecret --default-character-set=utf8mb4 --single-transaction --skip-tz-utc blog articles categories > ~/code/database-blog-table-articles-cetegories.sql

恢复:

mysql -uhomestead -psecret blog < ~/code/database-blog-table-articles-cetegories.sql

2.4 备份多个数据库

格式:

mysqldump -u{username} -p{password} --default-character-set=utf8mb4 --single-transaction --skip-tz-utc --databases {database1} {database2} > {file.sql}

示例:

mysqldump -uhomestead -psecret --default-character-set=utf8mb4 --single-transaction --skip-tz-utc --databases account blog > ~/code/account-blog.sql

恢复:

mysql -uhomestead -psecret < ~/code/account-blog.sql

2.5 备份所有数据库

格式:

mysqldump -u{username} -p{password} --default-character-set=utf8mb4 --single-transaction --skip-tz-utc --all-databases > {file.sql}

示例:

mysqldump -uhomestead -psecret --default-character-set=utf8mb4 --single-transaction --skip-tz-utc --all-databases > ~/code/all.sql

恢复:

mysql -uhomestead -psecret < ~/code/all.sql