mysqldump - 备份 MySQL 数据库

ぃ、小莉子 提交于 2020-02-10 05:33:36

参考资料

备份

备份所有数据库中的所有数据(包括系统数据库) –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 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!