欢迎大家来到IT世界,在知识的湖畔探索吧!
概述:很多时候我们对mysql的备份有不同的需求,比如我们只需要对mysql数据库实例中的某一个库的数据、某一个库的表结构、某个表的数据、某个表的结构、多个表的数据、多个表的结构、或者是对一些指定前缀的表的数据、结构进行备份等等,为了不影响当前的数据写入,我们在操作的时候需要不能锁表 等等。
#备份所有数据库
1、mysqldump -h127.0.0.1 -P3306 -uroot -p –all-databases –master-data=2 –single-transaction –quick -R –events > /backup/all_db.sql
( 说明: –single-transaction 使用该参数,使备份innodb表时不锁表进行,但官方说法需要增加参数 –skip-opt ,因为–opt参数默认开启,包含了锁表方法,需要注意。
–master-data=2 备份的文件中增加注释的binlog文件,以及pos节点,以便增加主从时使用,当然,不需要的时候也可以不加此参数。
–quick 该参数用于加快数据备份。 )
#备份指定前缀的表
1、mysqldump -h127.0.0.1 -P33106 -uroot -p dedeutfdb $(mysql -h127.0.0.1 -P33106 -uroot -p -D dedeutfdb -Bse “show tables like ‘dede_sys_%'”) > /tmp/4.sql
#同上,最后的_需要转义,匹配带有dede_sys_的表
2、mysqldump -h127.0.0.1 -P33106 -uroot -p dedeutfdb $(mysql -h127.0.0.1 -P33106 -uroot -p -D dedeutfdb -Bse “show tables like ‘dede_sys\_%'”) > /tmp/4.sql
#导出指定的多个表(包含表数据和表结构)
1、mysqldump -h127.0.0.1 -P33106 -uroot -p dedeutfdb –tables dede_sys_enum dede_sys_module > /tmp/2tables01.sql (会锁表)
2、mysqldump -h127.0.0.1 -P33106 -uroot -p dedeutfdb –single-transaction –skip-opt –tables dede_sys_enum dede_sys_module > /tmp/2tables02.sql (不锁表)
#只导出指定数据库的 数据内容 或 表结构
-t, –no-create-info Don’t write table creation info.
1、mysqldump -h127.0.0.1 -P33106 -uroot -p -t dedeutfdb > /tmp/nocreate01.sql
-d, –no-data No row information.
1、mysqldump -h127.0.0.1 -P33106 -uroot -p -d dedeutfdb > /tmp/nodata01.sql
2、mysqldump -h127.0.0.1 -P33106 -uroot -p –skip-opt -d dedeutfdb > /tmp/nodata02.sql (加参数–skip-opt,没有“DROP TABLE IF EXISTS”等语句)
#备份多个指定的数据表的表结构(不包含数据)
1、mysqldump -h127.0.0.1 -P33106 -uroot -p -d dedeutfdb –tables dede_sys_enum dede_sys_module > /tmp/2tables-nodata01.sql
#备份多个指定的数据表的数据(不包含创建表结构)
1、mysqldump -h127.0.0.1 -P33106 -uroot -p -t dedeutfdb –tables dede_sys_enum dede_sys_module > /tmp/2tables-nocreate01.sql
2、mysqldump -h127.0.0.1 -P33106 -uroot -p -t dedeutfdb –single-transaction –skip-opt –tables dede_sys_enum dede_sys_module > /tmp/2tables-nocreate01.sql (不锁表操作方法,但插入数据方式有变化,也可以下面3的方法)
3、mysqldump -h127.0.0.1 -P33106 -uroot -p -t dedeutfdb –single-transaction –skip-add-drop-table –skip-add-locks –tables dede_sys_enum dede_sys_module > /tmp/2tables-nocreate01.sql
#排除表
1、mysqldump -h127.0.0.1 -P33106 -uroot -p dedeutfdb –ignore-table=dedeutfdb.dede_addonarticle > j01.sql (可以多个–ignore-table=dedeutfdb. 排除多个表)
#备份所有数据库
1、mysqldump -h127.0.0.1 -uroot -pPWD123 -A > db-all.sql
// -A, –all-databases // 所有数据库 , 包括mysql等
#备份指定的某个或几个数据库
2、mysqldump -h127.0.0.1 -uroot -pPWD123 -B db01 db02 > db1-2.sql
-B, –databases // 指定数据库 ,备份多个库时必须指定这个参数,否则会认为db02是db01中的表。
#备份一个库,使用-B, –databases参数的区别
1、mysqldump -h127.0.0.1 -uroot -pPWD123 -B db01 > db01.sql
2、mysqldump -h127.0.0.1 -uroot -pPWD123 db01 > db01.sql
(以上2个方式都是备份单个数据库,但不同的是加参数时,会在sql中增加一下语句,
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dedeutfdb` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `dedeutfdb`;
)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/87996.html