一.概述

    mysqldump客户端工具是用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表或装载表的sql语句。mysqldump目前是mysql中最常用的备份工具。
  三种方式来调用mysqldump,命令如下:

  上图第一种是备份单个数据库或者库中部分数据表(从备份方式上,比sqlserver要灵活一些,虽然sql server有文件组备份)。第二种是备份指定的一个或者多个数据库。第三种是备份所有数据库。
  1.连接导出,下面将test数据库导出为test.txt文件,导出位置在data目录下

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p test > test.txt

  上图显示: 导出到test.txt文件里, 数据有几部份sql语句,包括:(1)有判断表存在删除,(2)导出表结构和表数据,(3)导前加table write锁,导完释放。通过下面帮助命令可以看到默认设置。

 [root@hsr data]# /usr/local/mysql/bin/mysqldump --help

  2. 输出内容选项

-n, --no-create-db

不包含数据库的创建语句

-t, --no-create-info

不包含数据表的创建语句

-d,--no-data

不包含数据

    下面演示导出test库的a表,不包含数据:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -d  test a > a.txt

    上图显示,使用more 查看a.txt,内容只有表结构。
  3. 使用 --compact选项使得结果简洁,不包括默认选项中的各种注释,下面还是演示a表:

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p --compact  test a > a.txt

  4. 使用-c --complete-insert 选项,使insert语句包括字段名称

[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p -c --complete-insert  test b > b.txt

  5. 使用-T选项将指定数据表中的数据备份为单纯的数据文本和建表sql, 两个文件。

     [root@hsr data]# midir bak
[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p test b -T ./bak
Enter password:
mysqldump: Got error: : The MySQL server is running with the --secure-file-priv option so it cannot execute
                      this statement when executing 'SELECT INTO OUTFILE'
 --上面的语句报错,查找错误信息中的字段设置
SHOW VARIABLES LIKE '%secure%';

    secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

(1) 当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出。

(2) 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下。

(3 )当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制。

    下面来设置my.cnf文件,加上导入位置,位置在/tmp 目录下,如下图:

-- 再次导出,导出路径在/tmp下
[root@hsr data]# /usr/local/mysql/bin/mysqldump -uroot -p test b -T /tmp

    使用more 查看文件,b.sql中包含了表架构, b.txt包含数据。

  6.  字符集选项

    --default-character-set=name 选项可以设置导出的客户端字符集。这个选项很重要,如果客户端字符集和数据库字符集不一致,有可能成为乱码,使得备份文件无法恢复。

[root@hsr data]#  /usr/local/mysql/bin/mysqldump -uroot -p  --compact --default-character-set=utf8 test >test.txt

    

  7. 其他常用选项

    (1) -F --flush-logs(备份前刷新日志)  备份前将关闭旧日志,生成新日志。恢复的时候直接从新日志开始进行重做,方便恢复过程。

    (2) -l --lock-tables(给所有表加读锁) 使得数据无法被更新,从而使备份的数据保持一致性(可以导致大量长时间阻塞)。

mysql 开发进阶篇系列 35 工具篇 mysqldump(数据导出工具)的更多相关文章

  1. mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)

    一.概述 在数据库的日常维护中,表的导入和导出是很频繁的操作,本篇讲解如何使用导入功能,并以案例为演示.某些情况下,需要将表里的数据导出为某些符号分割的纯数据文本,而不是sql语句,比如:(1)用来作 ...

  2. mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)

    一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...

  3. mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)

    一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...

  4. mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)

    一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...

  5. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

  6. mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...

  7. 开发了一个安卓小软件“CSV联系人导入导出工具”,欢迎测试

    开发了一个安卓小软件"CSV联系人导入导出工具",欢迎测试.本软件可以帮你快速备份和恢复联系人,不用担心号码遗失,软件操作简单,使用方便. 下载地址: 百度网盘:https://p ...

  8. DB数据导出工具分享

    一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...

  9. oracle数据导出工具sqluldr2

    oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...

随机推荐

  1. vue获取后台图片验证码,并点击刷新验证码

    <--url为需要访问的接口地址--> <span style="display: inline-block;width: 130px;height: 53px;borde ...

  2. 498. Diagonal Traverse对角线z型traverse

    [抄题]: Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in dia ...

  3. swift hidesBottomBarWhenPushed 设置界面

    方法一(推荐):一级界面push的时候设置,子页面无需设置 let vc = JYMyCommissionController() vc.hidesBottomBarWhenPushed = true ...

  4. Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题(转)

    原文地址:https://wzfou.com/php-fpm/ 最近发现博客的内存老是隔三差五地被“吃掉”了,登录到后台后偶尔会出卡顿的情况,一开始怀疑是Swap不够导致的,于是给VPS主机增加了几个 ...

  5. 定义java中的变量

    四种类型 1.整数 2.小数 3.字符 4.布尔值 八种 整数(byte   字节1   范围-128~127 )    (short   字节 2)    (int    字节4)     (lon ...

  6. tab选项卡实例

    之前也见了不少的tab选项卡,但是下面这个选项卡是一个页面中有多个时互不影响的. <head> <meta charset="utf-8"> <met ...

  7. boost 编写finger服务

    本篇是模仿PYTHON TWISTED写一个FINGER示例. 从最简单的链接到通过接收字符串返回不同的内容 1 最简单的链接 #include <ctime> #include < ...

  8. IoGetRelatedDeviceObject学习

    PDEVICE_OBJECT IoGetRelatedDeviceObject( IN PFILE_OBJECT FileObject ) /*++ Routine Description: This ...

  9. IJ配置项目的TOMCAT

    参考文档: IJ里配置TOMCAT http://jingyan.baidu.com/album/0a52e3f43d9f69bf62ed72f9.html?picindex=11 源发行版1.8 需 ...

  10. js--获得当前系统时间

    window.onload = function () { var oBody = document.body; setInterval( fnTime, 1000 ); fnTime (); fun ...