mysqldump是MySQL用于转存储数据库的客户端程序。转储包含创建表和/或装载表的SQL语句 ,用来实现轻量级的快速迁移或恢复数据库,是mysql数据库实现逻辑备份的一种方式。 mysqldump不适用于大型数据库备份与恢复,速度慢,不支持并行,其次SQL重放将耗用大量的I/O。
1、查看详细 mysqldump 帮助信息
[root@mysql ~]# mysqldump --help
Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
2、 mysqldump 中主要参数介绍
2.1
--opt               Same as --add-drop-table, --add-locks, --create-options,
                      --quick, --extended-insert, --lock-tables, --set-charset,
                      and --disable-keys. Enabled by default, disable with --skip-opt.
 -q, --quick         Don't buffer query, dump directly to stdout.
                      (Defaults to on; use --skip-quick to disable.)
说明:缺省情况下以上2个参数为开启状态,如果2个参数未使用的情况下,在转储结果之前会把全部内容载入到内存中,对于较大的数据库转储将严重影响性能。
2.2
--default-character-set=name       Set the default character set.
说明:设置导出脚本的字符集,未指定的情况下为UTF8。
2.3
-d, --no-data       No row information.
说明:不输出数据行,仅导出结构
 -t, --no-create-info      Don't write table creation info.
说明:只导出表数据,不导出表结构
2.4
--triggers          Dump triggers for each dumped table.(Defaults to on; use --skip-triggers to disable.)
说明:触发器默认导出
-R, --routines      Dump stored routines (functions and procedures).
说明:存储过程与函数默认不导出
2.5
--single-transaction 
说明:创建一致性快照,仅仅针对innodb引擎
-f, --force         Continue even if we get an SQL error.                                            
说明:有错误时,依旧强制dump
2.6
--add-drop-table    Add a DROP TABLE before each create.
                      (Defaults to on; use --skip-add-drop-table to disable.)
说明:在导入恢复的时候,创建表之前,先执行删除表操作。

3、范例

注意(特别注意这两点,防止误操作,丢失数据):
--database会生成建库语句 默认是关闭的,如:CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8 */; 意思是如果 mysqldump 的数据库不存在就导入恢复时自行创建,存在就不创建。
--add-drop-table 默认是开启的,在导入恢复时,如果该表存在,会先删除再创建 如:DROP TABLE IF EXISTS `test`; 
禁用是参数 --skip-add-drop-table 。
                     
3.1
  备份服务器上的所有数据库
  shell> mysqldump -uXX -pXX --all-databases --opt --compact --flush-privileges --routines >alldb_$(date +%F).sql
  恢复所有数据库
  shell>mysql -uXX -pXX <alldb_$(date +%F).sql

  同时备份多个数据库
  shell> mysqldump -uXX -pXX --database db_1 db_2  --routines  >multidb_$(date +%F).sql
  同时恢复多个数据库 
  shell> mysql -uroot -poracle < multidb_$(date +%F).sql

  备份单个数据库
  shell>mysqldump -uXX -pXX db_name --opt --routines > db_name_$(date +%F).sql
  恢复单个数据库
  shell>mysql -uXX -pXX db_name < db_name_$(date +%F).sql

3.2
 备份数据库的结构,不备份数据
  shell> mysqldump -uXX -pXX db_name --no-data  --routines  >db_name_onlystructure_$(date +%F).sql

  备份数据库的数据,不备份结构
  shell> mysqldump -uXX -pXX --opt db_name --no-create-info >db_name_onlydata_$(date +%F).sql
3.3  
  备份数据库上的特定表
  shell> mysqldump  -uXX -pXX --opt db_name t_name > db.t_name_$(date +%F).sql
  恢复数据库上的特定表 
  shell> mysql -uXX -pXX dbname < db_name_$(date +%F)_$(date +%F).sql

  备份指定数据库上的多个指定表
  shell> mysqldump -uroot -poracle --database test test02  --routines  >multi_t_$(date +%F).sql
  恢复指定数据库上的多个指定表
   mysql -uroot -poracle < /tmp/multi_t_$(date +%F).sql

  备份表上特定的记录
  shell> mysqldump -uXX -pXX db_name t_name -w "first_name='NICK'" >db.t_name_row_$(date +%F).sql  
3.4
  只导出数据库中的存储过程,函数,触发器
  shell> mysqldump -uXX -pXX db_name --no-create-db --no-data --no-tablespaces --no-create-info --routines >db_name_$(date +%F).sql

mysql之 mysqldump 备份恢复详解的更多相关文章

  1. mysql备份恢复详解

    前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lv ...

  2. Mysql中mysqldump命令使用详解

    MySQL有很多可以导入数据的方法,然而这些只是数据传输中的一半,另外的一般是从MySQL数据库中导出数据.有许多的原因我们需要导出数据.一个重要的原因是用于备份数据库.数据的造价常常是昂贵的,需要谨 ...

  3. Xtrabackup之innobackupex备份恢复详解(转)

    add by zhj:对于Xtrabackup2.2来说,已经解决了本文结尾提到的那个bug,当使用--copy-back时,同时加--force-non-empty-directories 即可.这 ...

  4. MySQL数据库使用mysqldump导出数据详解

    mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数 ...

  5. (转)MySQL备份原理详解

    MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...

  6. mysql互为主从实战设置详解及自动化备份(Centos7.2)

    mysql互为主从实战设置详解(Centos7.2) 第一步:mysql配置  my.cnf配置 服务器1 (10.89.10.90) [mysqld]  server-id=1  log-bin=/ ...

  7. Linux备份数据库,mysqldump命令实例详解

    mysqldump是mysql数据库中备份工具,用于将MYSQL服务器中的数据库以标准的sql语言的方式导出,并保存到文件中. 语法: mysqldump (选项) 选项: --add-drop-ta ...

  8. mysql navcat备份使用详解

    mysql navcat备份使用详解 点击备份 然后新建备份 然后选择要备份的表 就可以了 以后这个表删除了 内容变更了 都可以点击 还原备份就可以了

  9. Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p dat ...

随机推荐

  1. Linux SvN操作

    Linux svn管理工具的12个命令实践 2010-08-25 10:50 佚名 icycling.cublog.cn 字号:T | T 目前,绝大多数开源软件都使用svn作为代码版本管理软件.本文 ...

  2. 现代3D图形编程学习--opengl使用不同的缓存对象(译者添加)

    现代3D图形编程学习系列翻译地址 http://www.cnblogs.com/grass-and-moon/category/920962.html opengl使用不同的缓存对象 在设置颜色一章中 ...

  3. Linux防火墙配置—允许转发

    一.实验目标 在上一次"Linux基础网络搭建实验"中,内.外网虚拟机之所以能Ping通,是因为暂时关闭了防火墙,然而现实中这样操作显然存在很大的安全隐患,所以本次实验在上次实验的 ...

  4. THINKPHP3.2 中使用 soap 连接webservice 解决方案

    今天使用THINKPHP3.2 框架中开发时使用soap连接webservice 一些浅见现在分享一下, 1.首先我们要在php.ini 中开启一下 php_openssl.dll php_soap. ...

  5. 开通阿里云 CDN

    CDN,内容分发网络,主要功能是在不同的地点缓存内容,通过负载均衡技术,将用户的请求定向到最合适的缓存服务器上去获取内容,从而加快文件加载速度. 阿里云提供了按量计费的CDN,开启十分方便,于是我在自 ...

  6. WebService应用--使用java开发WebService程序

    使用Eclipse开发第一个WebService程序,本示例采用的工具为Spring-Tool-Suite,和Eclipse没有本质的区别,开发环境jdk1.7 一.开发步骤: 1.新建名为WebSe ...

  7. 二分图的最大匹配——最大流EK算法

    序: 既然是个图,并且求边数的最大值.那么这就可以转化为网络流的求最大流问题. 只需要将源点与其中一子集的所有节点相连,汇点与另一子集的所有节点相连,将所有弧的流量限制置为1,那么最大流 == 最大匹 ...

  8. python3 selenium 切换窗口的几种方法

    第一种方法: 使用场景: 打开多个窗口,需要定位到新打开的窗口 使用方法: # 获取打开的多个窗口句柄windows = driver.window_handles# 切换到当前最新打开的窗口driv ...

  9. javascript的面向对象详解

    每次说到javascript到面向对象,总感觉自己心里懂,但是却不知道该怎么说,这就是似懂非懂到表现,于是乎,每次一说,就要到处去查找资料,零零碎碎到看了一些,感觉有懂了,但是过段时间,好像又不知道是 ...

  10. Unity 消息发送机制 解析

    该博客,只为解析,解析,解析,已经整理好,已经整理好,已经整理好.代码核心原理套用网上最流行的那一套,也是最常用游戏开发适用的消息机制.这里面加上自己的一些优化,极大的修正(哈哈),实测,没问题.万一 ...