mysqldump - 备份 MySQL 数据库
备份
备份所有数据库中的所有数据(包括系统数据库) –all-databases
通过 --all-databases
选项备份所有的数据库:
mysqldump -uroot -p --all-databases >/tmp/all.sql
备份指定数据库中的所有数据 –databases
通过 --databases
选项(只有一个数据库时可以省略)指定要备份的数据库,可以同时备份多个库,用空格分隔:
mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql
mysqldump --add-drop-table -uroot -p database_name > /home/backup/mysql/xx_bak_v1_1_3.sql
备份指定表
通过 --databases
选项指定数据库后,再用 --tables
选项指定具体的表(只备份一个数据库中的一个表时可以省略),可以同时备份多个表,用空格分隔:
mysqldump -uroot -p --databases db1 --tables a1 a2 >/tmp/db1.sql
mysqldump -uroot -p db1 t1 >/tmp/t1.sql
只导出表结构不备份数据 –no-data
通过 --no-data
选项可以只备份表的结构:
mysqldump -uroot -p --no-data --databases db1 >/tmp/db1.sql
部分参数解释
--no-data
不备份数据库
--add-drop-database
在备份的 SQL 文件中,在创建数据库的语句之前添加 drop database
指令
--add-drop-table
在备份的 SQL 文件中,在创建数据表的语句之前增加 drop table
指令
还原
登录 MySQL 执行操作
登录数据库后直接通过 source
命令执行备份的 SQL 文件即可:
use target_db_name
source /home/project/v1_1_3/static/common/sql/v1_1_3.sql
通过 mysql 命令执行操作
例如,备份指令:
mysqldump db_name >backup-file.sql
则还原时可以通过 mysqladmin
先创建数据库,然后用 mysql
命令执行 SQL 文件:
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql