当前位置: 首页 > news >正文

mysqldump学习

为什么80%的码农都做不了架构师?>>>   hot3.png

文本格式的备份+二进制备份
文本格式:mysqldump
二进制格式:mysqlhotcopy、cp、rsync     

    mysqldump程序把数据表的内容写到文本文件中,默认情况下mysqldump将输出写入一个文件中。mysqldump导出的文件只能用mysql命令来导入。如果使用了--tab选项,则会生成两个文件,创建语句被放置到一个文件,数据被放置到另一个文件,mysqldump有以下三种运行方式:
mysqldump [OPTIONS] database [tables]
  mysqldump将dump指定数据库的指定表,如果没有指定表,则dump所有的表
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
  mysqldump将所有的参数都解释为数据库名,然后依次dump所有库里面的所有表
mysqldump [OPTIONS] --all-databases [OPTIONS]
  mysqldump将dump所有数据库里面的所有表

以下仅列出一些常用的mysqldump参数:
  -A, --all-databases   dump所有的数据库
  -Y, --all-tablespaces  dump所有的表空间
  -y, --no-tablespaces   不dump表空间
  --add-drop-database 在执行create databases语句前先执行DROP DATABASE语句
  --add-drop-table    在执行create table之前先执行DROP TABLE语句
  --character-sets-dir=name 
  --compatible=name   这个选项导致mysqldump对导出的结果进行必要的修改,以便于其他数据库类型进行兼容
  --compact     生成简洁的输出
  -C, --compress     Use compression in server/client protocol.
  -B, --databases   将所有参数都解释为数据库名 
  --default-character-set=name  设置默认字符集,是utf8                   
  -E, --events      把事件也dump到文件里
  -e, --extended-insert 在导出文件里同时插入多个数据行的insert语句,比使用只插入单个数据行的insert效率高                     
  -F, --flush-logs    在导出开始前先清空log日志。 
  -f, --force         即使在dump过程中出现错误也要dump
  -h, --host=name     远程dump时使用,设置远程数据库机器的名称
  --ignore-table=name 不对指定的表进行dump
  -l, --lock-tables   在dump前先锁表,对于myisam引擎有用
  -p, --password[=name] 指定连接数据库时的密码
  -P, --port=#        指定数据库的端口
  -q, --quick         不使用缓存,dump出来的数据直接写入文件中
  --single-transaction 在dump innodb库时采用该参数,会当作一个事务运行的
  -S, --socket=name   通过socket连接数据库


   一般都是一个库后面跟几个表来备份,如果要要备份多个库,则需要使用--databases参数,mysqldump会把你在命令行上的所有名字都解释为库名,如果要备份所有库,则使用--all-databases参数即可,后面不用跟库名。


   如果在备份innodb表时,加上--single-transaction参数,会把备份操作放在一个事物中进行。如果数据库包含存储历程、触发器、事件,可以使用--routines、--triggers、--events参数明确的把他们包括到备份输出里面,默认情况下只有触发器被包括在备份输出里面。

例如:

单表备份
   mysqldump -uroot -p dbname tab1 >  xxx.sql
多表备份
   mysqldump -u root -p daname
 tb1 tb2 > xxx.sql

在备份的同时进行压缩
   mysqldump -uroot -pxxx db table | gzip > xxx

可以在备份的时候直接转储到另一台mysql服务器

   mysqldump --databases xxx | mysql -hxxx -uroot --compress database_name


二进制备份
    mysqlhotcopy是一个制作数据库备份的perl脚本,他比mysqldump要快,他直接复制数据表文件,不过只能用来复制myisam。


转载于:https://my.oschina.net/guol/blog/145852

相关文章:

  • Silverlight 结合ArcGis 在地图画点
  • 摇摆的立场
  • sed 单行操作快速参考
  • 淘宝SEO珍贵笔记
  • Hadoop中HDFS和MapReduce节点基本简介
  • Java数据库连接池封装与用法
  • poj 1679 Prim判断次短路
  • 往篇博文更新日志
  • Selenium的 WebDriverWait 研究
  • 笔记本出厂预装Win8改装Win7的操作步骤及常见问题
  • 常用网站推荐
  • what's the help of unnecessary pointer comparison
  • JS函数中使用this的错误
  • PingingLab传世经典系列《CCNA完全配置宝典》-5.2 编号拓展ACL
  • JQuery实现超链接鼠标提示效果
  • ES6指北【2】—— 箭头函数
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Android单元测试 - 几个重要问题
  • android图片蒙层
  • github指令
  • JavaScript HTML DOM
  • mysql innodb 索引使用指南
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • nodejs调试方法
  • Python打包系统简单入门
  • rabbitmq延迟消息示例
  • storm drpc实例
  • 解决iview多表头动态更改列元素发生的错误
  • 聊聊hikari连接池的leakDetectionThreshold
  • 那些年我们用过的显示性能指标
  • 数组大概知多少
  • 算法系列——算法入门之递归分而治之思想的实现
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微服务框架lagom
  • 以太坊客户端Geth命令参数详解
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • (3)llvm ir转换过程
  • (42)STM32——LCD显示屏实验笔记
  • (7)STL算法之交换赋值
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm高校实验室 毕业设计 800008
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (全注解开发)学习Spring-MVC的第三天
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (顺序)容器的好伴侣 --- 容器适配器
  • (一)为什么要选择C++
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .equals()到底是什么意思?
  • .gitignore文件---让git自动忽略指定文件
  • .Net Remoting常用部署结构
  • .net wcf memory gates checking failed