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,工 ...
随机推荐
- eclipse中启动项目报内存溢出问题通过修改配置解决
标注:添加下面的参数还是挺管用的,本人亲测可试,同时启用两个项目,总是报堆内存不足,加了下面的参数后变可以同时正常运行了. 错误如下: Error occurred during initializ ...
- ubuntu桌面环境安装中文环境
apt install language-pack-zh-hans* language-pack-gnome-zh-hans* language-pack-kde-zh-hans* apt insta ...
- Javascript组成--ECMAScript,DOM,BOM
ECMAScript 部分 ECMAScript是一个标准,JS只是它的一个实现,其他实现包括ActionScript; “ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力”,即EC ...
- ES之五:ElasticSearch聚合
前言 说完了ES的索引与检索,接着再介绍一个ES高级功能API – 聚合(Aggregations),聚合功能为ES注入了统计分析的血统,使用户在面对大数据提取统计指标时变得游刃有余.同样的工作,你在 ...
- SPS Programming Abrites AVDI or GM MDI
Just information for you to make a wise purchase of GM scan tools for SPS programming: (here, I focu ...
- 【APP测试(Android)】--安装卸载
- Hibernate配置文件的书写
Hibernate主要配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibern ...
- okhttp 调用相机 上传服务器
MainActivity package com.bwie.lianxi1; import android.content.Intent; import android.database.Cursor ...
- Makefile入门
相信大家对makefile都不陌生,在Linux下编写程序基本都离不开makefile的编写,我们都知道多个.c文件经过编译器编译后得到多个.o文件,这些文件是互相独立的,但最终我们要得到一个可正常运 ...
- CUDA-存储器
1.类型(8种) register: GPU片内 device可读\写 shared memory:GPU片内 device可读\写 local memory:板载显存 device可读\写 cons ...