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,工 ...
随机推荐
- HTML中的Meta标签详解
emta标签的组成:meta标签分两大部分:HTTP-EQUIV和NAME变量. HTTP-EQUIV:HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显 ...
- eclipse中启动项目报内存溢出问题通过修改配置解决
标注:添加下面的参数还是挺管用的,本人亲测可试,同时启用两个项目,总是报堆内存不足,加了下面的参数后变可以同时正常运行了. 错误如下: Error occurred during initializ ...
- face_recognition 相关依赖
centos-v:7 python-v:3.7 IDE:pycharm 安装顺序: boost boost-py cmake numpy opencv-python scipy 安装方法:settin ...
- react 子元素修改父元素值的一个偏方,虽然简单,但是不建议用,
this.state.obj = { name: "小明" } <Zizujian obj={this.state.obj} /> // 子组件这样修改父元素的值 // ...
- 时间戳转中国人能看得懂的日期格式 yy-mm-dd
很多项目都会用到时间戳的转换 说实话 我现在的这家公司超级好 因为后太要求传数据的时候竟然可以是时间戳的格式 我觉得我好幸福 哈哈哈 不过 等后台转给你数据的时候很多时候都是时间戳 这时候就得前端转 ...
- dos批处理(bat)运行exe
@echo off SETLOCAL ENABLEDELAYEDEXPANSIONREM 延迟环境变量扩展 color E echo operate:1.start启动 2.stop停止 3.exit ...
- Web常见安全漏洞-SQL注入
SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞. 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可 ...
- django的母板系统
一.母板渲染语法 1.变量 {{ 变量 }} 2.逻辑 {% 逻辑语 %} 二.变量 在母板中有变量时,母板引擎会去反向解析找到这个传来的变量,然后替换掉. .(点),在母板中是深度查询据点符,它的查 ...
- vue使用路由跳转到上一页
this.$router.go(-1) <template> <div> <button class="btn btn-success" @click ...
- 【转】Closeable, Readable, Flushable, Appendable
Closeable: package java.io; import java.io.IOException; public interface Closeable { /** * Closes th ...