mysqldump导出指定表_MySQL导⼊导出——mysqldump简介
及常见⽤法
⼀、导出
导出⽤户需要有导出对象的权限,例如导出表要有select权限、导出视图要有show view权限、导出触发器要有trigger权限、需要锁表时要有lock tables权限等。
如果dump⽂件中包含了GTID信息,则⽆法导⼊到未启⽤GTID的数据库(低于5.6.9版本的数据库不⽀持GTID,因此也⽆法导⼊到这些库中)。
1. db级
导出所有db结构和数据(-A参数)mysqldump -uroot -p -A > /data/bak/all.sql 仅导出所有db结构(-d参数)mysqldump -uroot -p -A -d > /data/bak/all_struct.sql 仅导出所有db数据(-t参数)mysqldump -uroot -p -A -t > /data/bak/all_data.sql 导出单个db结构和数据mysqldump -uroot -p mydb > /data/bak/mydb.sql 导出单个db结构和数据(排除部分表)mysqldump -uroot -p mydb --st1 --st2 > /data/bak/mydb.sql 仅导出单个db结构mysqldump -uroot -p mydb -d >
湘潭编程培训机构/data/bak/mydb.sql 仅导出单个db数据mysqldump -uroot -p mydb -t > /data/bak/mydb.sql 导出多个db结构和数据(--databases 参数,数据,结构单独导出⽅法同上)mysqldump -uroot -p --databases db1 db2 > /data/bak/muldbs.sql
2. 表级
导出指定db某张表(test)结构及数据(数据,结构单独备份⽅法同上)mysqldump -uroot -p dbname test > db.sql 导出指定db中多张表(test1,test2,test3)结构及数据mysqldump -uroot -p dbname test1 test2 test3 > db.sq
dialogue词源3. 主要导出参数
--all-databases, -A:备份所有数据库mysql面试题导图
--databases, -B:备份多个数据库。不使⽤该选项时,mysqldump把第⼀个名字参数作为db名,后⾯的作为表名;使⽤该选项时,则把每个名字都当作为db名。
default-character-set:指定默认字符集,不指定默认为UTF-8
--force, -f:即使发现sql错误,仍然继续备份
--no-data, -d:只导出表结构
--port=port_num, -P port_num:连接端⼝号
--quick, -q:强制mysqldump从服务器每次查询⼀⾏数据⽽不是查询整个表。避免⼤表导出时查询刷爆内存,同时还导致热点数据被刷出缓冲池。通常建议总是启⽤该选项。
--tables:覆盖 --databases or -B选项,后⾯所跟参数被视作表名
--tab=path(-T path):产⽣TAB分割的数据⽂件,为每张表建⼀个包含create table语句的tabname.sql和⼀个包含数据的
<⽂件
--xml, -X:导出为xml⽂件
--single-transaction:导出开始前先执⾏start transaction命令,导出时不锁表,仅⽀持InnoDB存储引擎,需要确保导出时⽆DDL 操作
--lock-tables(-l):导出过程中依次锁住每个schema下所有表(只能保证各schema下表导出的⼀致性),被锁的表只能读,MyISAM存储引擎常⽤
vbs代码删除--lock-all-tables(-x):导出过程中锁住所有schema下所有表,避免前⾯参数⽆法保证所有schema下表导出的⼀致性的问题,但是所有表都变为只读
--master-data=[value] 主要⽤于建从库。value=1时,dump⽂件包含change master语句,导⼊时⾃动执⾏;value=2
时,change master语句被注释,需⼿动执⾏。--master-data会忽略--lock-tables选项,如果不加--single-transaction选项会⾃动使⽤--lock-all-tables
--where:指定导出条件
--events(-E):导出事件调度器
--routines(-R):导出存储过程和函数
--triggers:导出触发器
--hex-blob:将binary,varbinary,blog,bit列类型导出为16进制格式
⼆、导⼊
导⼊⽤户需要有执⾏备份⽂件中语句的权限(ddl、dml等)。
1. 常⽤导⼊⽅法
系统命令⾏⽅法
mysql -uroot -p < test_backup.sql
mysql命令⾏source⽅法
mysql -uroot -psource /home/mysql/test_backup.sql
2. 导⼊⽰例
导⼊所有数据库
mysql命令⾏:mysql>source /data/bak/all.sql
系统命令⾏:mysql -uroot -p123456
导⼊单个数据库
mysql命令⾏:
mysql>use mydbmysql>source /data/bak/mydb.sql
系统命令⾏:
mysql -uroot -p123456 mydb 导⼊单个数据库的多个表virsh未到命令
mysql命令⾏:
mysql>use mydbmysql>source /data/bak/multables.sql
系统命令⾏:
mysql -uroot -p123456 mydb 导⼊多个数据库(⼀个备份⽂件⾥有多个数据库的备份,此时不需要指定数据库) mysql命令⾏:
mysql>source f:\muldbs.sql
系统命令⾏:
php微服务架构swoolemysql -uroot -p123456 【往期经典回顾】 MD5sum 和 SHA256sum Apache与Tomcat有什么关系和区别 美国如果把根域名服务器封了,中国会从⽹络上消失? Linux chattr 命令,超越权限任性修改 【⼼语】 我⼀直坚持的⼀个信念是,改变不了⼤环境,就改变⼩环境,做⾃⼰⼒所能及的事情。你不能决定太阳⼏点升起,但可以决定⾃⼰⼏点起床。 【互动学习】 请有兴趣请加⼊【号:gj825666】,我们⼀起学习、成长。感谢诸位的⽀持
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论