mysql 开发进阶篇系列 35 工具篇 mysqldump(数据导出工具)
一.概述
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(数据导出工具)的更多相关文章
- mysql 开发进阶篇系列 49 表的数据导出(into outfile,mysqldump)
一.概述 在数据库的日常维护中,表的导入和导出是很频繁的操作,本篇讲解如何使用导入功能,并以案例为演示.某些情况下,需要将表里的数据导出为某些符号分割的纯数据文本,而不是sql语句,比如:(1)用来作 ...
- mysql 开发进阶篇系列 42 逻辑备份与恢复(mysqldump 的完全恢复)
一.概述 在作何数据库里,备份与恢复都是非常重要的.好的备份方法和备份策略将会使得数据库中的数据更加高效和安全.对于DBA来说,进行备份或恢复操作时要考虑的因素大概有如下: (1) 确定要备份的表的存 ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
- mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...
- mysql 开发进阶篇系列 55 权限与安全(安全事项 )
一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...
- mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)
1. innodb_lock_wait_timeout mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间 ...
- 开发了一个安卓小软件“CSV联系人导入导出工具”,欢迎测试
开发了一个安卓小软件"CSV联系人导入导出工具",欢迎测试.本软件可以帮你快速备份和恢复联系人,不用担心号码遗失,软件操作简单,使用方便. 下载地址: 百度网盘:https://p ...
- DB数据导出工具分享
一个根据数据库链接字符串,sql语句 即可将结果集导出到Excel的工具 分享,支持sqlserver,mysql. 前因 一个月前朋友找到我,让我帮忙做一个根据sql导出查询结果到Excel的工具( ...
- oracle数据导出工具sqluldr2
oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...
随机推荐
- vue获取后台图片验证码,并点击刷新验证码
<--url为需要访问的接口地址--> <span style="display: inline-block;width: 130px;height: 53px;borde ...
- 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 ...
- swift hidesBottomBarWhenPushed 设置界面
方法一(推荐):一级界面push的时候设置,子页面无需设置 let vc = JYMyCommissionController() vc.hidesBottomBarWhenPushed = true ...
- Linux的php-fpm优化心得-php-fpm进程占用内存大和不释放内存问题(转)
原文地址:https://wzfou.com/php-fpm/ 最近发现博客的内存老是隔三差五地被“吃掉”了,登录到后台后偶尔会出卡顿的情况,一开始怀疑是Swap不够导致的,于是给VPS主机增加了几个 ...
- 定义java中的变量
四种类型 1.整数 2.小数 3.字符 4.布尔值 八种 整数(byte 字节1 范围-128~127 ) (short 字节 2) (int 字节4) (lon ...
- tab选项卡实例
之前也见了不少的tab选项卡,但是下面这个选项卡是一个页面中有多个时互不影响的. <head> <meta charset="utf-8"> <met ...
- boost 编写finger服务
本篇是模仿PYTHON TWISTED写一个FINGER示例. 从最简单的链接到通过接收字符串返回不同的内容 1 最简单的链接 #include <ctime> #include < ...
- IoGetRelatedDeviceObject学习
PDEVICE_OBJECT IoGetRelatedDeviceObject( IN PFILE_OBJECT FileObject ) /*++ Routine Description: This ...
- IJ配置项目的TOMCAT
参考文档: IJ里配置TOMCAT http://jingyan.baidu.com/album/0a52e3f43d9f69bf62ed72f9.html?picindex=11 源发行版1.8 需 ...
- js--获得当前系统时间
window.onload = function () { var oBody = document.body; setInterval( fnTime, 1000 ); fnTime (); fun ...