一、说明

在OUTFILE /LOAD DATA 逻辑备份中强烈建议备份恢复均明确指定字符集CHARACTER SET charset_name,避免乱码的出现发生。默认读取character_set_database参数。

1.1 必须参数

使用该方式进行备份恢复,必须设置--secure-file-priv参数!!导出导入文件必须在指定目录下。

该参数为静态参数,重启生效!

下表为官方文档对该参数介绍:

Property

Value

Command-Line Format

--secure-file-priv=dir_name

System Variable

secure_file_priv

Scope

Global

Dynamic

No

Type

string

Default Value (>= 5.6.34)

platform specific

Default Value (<= 5.6.33)

empty string

Valid Values (>= 5.6.34)

empty string

dirname

NULL

Valid Values (<= 5.6.33)

empty string

dirname

二、 OUTFILE 备份

Outfile备份是服务端命令,导出的文件只能在服务器端。

2.1命令参数

参数 含义
1 --fields-terminated-by=str   列与列之间分隔
2 --fields-enclosed-by=char    在每一个字段的前后加上char这个字符     
3 --fields-optionally-enclosed-by=char   在每一个非数字的字段前后加上char这个字符

4

--fields-escaped-by=char     使用char去转义特殊字符
5 --lines-terminated-by=str     行与行之间分隔   #linux \n   windows \r\n

注:2与3不能同时使用

2.2备份案例

2.1.1 备份全表

示例:

1

select from test into outfile '/home/mysql/test.txt' CHARACTER SET UTF8 fields terminated by '|' enclosed by '"' lines terminated by '\r\n';

2.1.2 备份其中几列

示例:

1

select id,name from test into outfile '/home/mysql/test.txt' CHARACTER SET UTF8 fields terminated by '|' enclosed by '"' lines terminated by '\r\n';

2.1.3 备份处理之后的列

示例:

1

select id,name,id+1 from test into outfile '/home/mysql/test.txt' CHARACTER SET UTF8 fields terminated by '|' enclosed by '"' lines terminated by '\r\n';

2.1.4 按照条件备份

示例:

1

SELECT into outfile '/home/mysql/test.txt ' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' FROM trans_transreq_20180828 a WHERE a.id > 999473433;

三、LOAD DATA 恢复

load data infile是MySQL中用来批量、快速导入数据的一种方式。必须在mysqld进程(服务)启动时运行。另外需要注意编码方式避免出现乱码现象。

由于安全原因,当读取位于服务器上的文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用load data infile,在服务器主机上必须有file的权限。

3.1关键字说明

关键字

作用
LOW_PRIORITY 等到没有其他人读这个表的时候,才把数据插入
LOCAL 指定local表明从客户主机读文件
REPLACE | IGNORE 对唯一键记录的处理,不指定直接报错,后续忽略
PARTITION (partition_name,...) 将数据插入到指定分区
CHARACTER SET 字符集设置  默认读取character_set_database
FIELDS TERMINATED BY 字段值的分隔符,若不指定则默认为 '\t'
FIELDS ENCLOSED BY 字段值的包括符,若不指定则默认为 ''
FIELDS ESCAPED BY 字段值的转义字符,若不指定则默认为'\\'

LINES TERMINATED BY

指定行分隔符,若不指定则默认为为系统的默认行分隔符(‘\r\n‘ on windows,'\n' on linux)

LINES STARTING BY

若指定该值为xxx,则MySQL会自动去掉xxx及其前面的字符,若某行不包含xxx,则该行将被忽略,若不指定默认为' '

如:

xxx"abc",1

something xxx"def",2

"ghi",3

实际:

("abc", 1), ("def", 2)

IGNORE LINES / ROWS

忽略文件开头的指定行,比如指定为2,那么MySQL只会解析并插入第三行及后面的数据

3.2 恢复案例

导入文件均由该导出命令生成

1

select from test.test into outfile '/home/mysql/test.txt' CHARACTER SET UTF8 fields terminated by '|' enclosed by '"' lines terminated by '\r\n';

文件内容(截取)

3.2.1 恢复全表

前提条件:列数相同,类型符合要求

1

load data infile '/home/mysql/test.txt' into table test CHARACTER SET UTF8 fields terminated by '|' enclosed by '"' lines terminated by '\r\n';

3.2.2 恢复文件中其中几列

不需要第二列,即忽略第二列数据

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (id,@dummy,create_time);

3.2.3 对INT类型做数学运算

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (@dummy,name,create_time) set id= @dummy*2;

3.2.4 对字符类型做拼接

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (id,@dummy,create_time) set name=  concat (@dummy,'a');

3.2.5 对时间字段做变化

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (id,name,@dummy) set create_time=CURRENT_TIMESTAMP;

3.2.6 对多个变量做处理

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (@dummy1,@dummy2,create_time) set id = @dummy1*2 ,name=concat(@dummy2,'a');

3.2.7 使用查询值作为列

1

load data infile '/home/mysql/test.txt' into table test  fields terminated by '|' enclosed by '"' lines terminated by '\r\n' (id,@dummy,create_time) set name= ( select from dual);

3.2.8 使用查询值作为列

关键字LOCAL导入本地文件。对文件需要

1

LOAD DATA LOCAL INFILE 'D:\\test.txt' INTO TABLE test CHARACTER SET UTF8 FIELDS TERMINATED BY '|' ENCLOSED BY '"'

MySQL备份与恢复——基于OUTFILE /LOAD DATA 逻辑备份恢复相关推荐

  1. MySQL的文本导入load data local

    MySQL的文本导入load data local 数据文件格式: Aeschylus time as he grows old teaches many lessons Alexander Grah ...

  2. MySQL备份与恢复-使用mysqldump进行数据的备份与还原

    使用mysqldump进行数据的备份与还原 备份数据的最终目的是为了在出现一些意外情况时,能够通过备份将数据还原,所以单单的备 份数据往往是无法满足还原时的需求的,所以在备份数据库时,除了要备份数据本 ...

  3. load out mysql,快速的mysql导入导出数据(load data和outfile)

    当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取. 1  指定关键词low_priority,MySQL将会等到没有其他人读这个表的时候,才把插入数据.可以使用如下的命令: lo ...

  4. MySQL备份与恢复——基于Xtrabackup物理备份恢复

    一.说明 Percona XtraBackup工具提供了一种在执行MySQL数据热备的方法.Percona XtraBackup是一个免费的.在线的.开源的.完整的数据库备份解决方案,适用于MySQL ...

  5. [整理]MySql批量数据导入Load data infile解决方案

    有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间. ...

  6. mysql load settings_在PHP中,有没有办法检查MySQL是否启用了'LOAD DATA INFILE'

    我有一个需要导入MySQL的csv文件 . 最初,我决定使用MySQL 's built-in ' LOAD DATA LOCAL INFILE'语句来导入CSV文件 . 出于某些原因,我们的服务器上 ...

  7. mysql导入数据命令Load data详解及示例

    一.语法介绍 LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE]INTO TABLE tbl_name ...

  8. Mysqldump逻辑备份恢复与binglog日志恢复

    前言 环境:cetos7 数据库:Mysql7.4 Mysqldump简介: mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数 ...

  9. oracle 还原dmp时_报错的值太大,基于oracle数据库的CLOUD备份恢复测试

    CLOUD oracle数据库备份恢复测试 强烈建议使用expdp/impdp,因为: 在expdp的时候Oracle不会再依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集导出数据,i ...

最新文章

  1. linux usb初始化
  2. MySQL慢查询(一) - 开启慢查询
  3. 动手学深度学习打卡之二。
  4. 2017年11月01日普及组 I Like Matrix!
  5. Pattern of Patterns
  6. js数组初始化——ES6 Array.prototype.fill()实践记录
  7. asp.net编程网页弹窗显示变量_CODESYS Engineering:面向工程应用编程的工具软件
  8. docker安装并运行ElasticSearch-Head插件
  9. java读文件几种方式_java中读取文件的方式有哪几种
  10. 蓝牙广播错误码3_蓝牙简介—物理层(PHY)
  11. 不同程序语言的注释和变量要求
  12. 20.Mybatis之逆向工程
  13. python分布式定时任务_分布式定时任务框架——python定时任务框架APScheduler扩展...
  14. 零基础如何学习java?
  15. linux删除登录密码,Linux重置登录密码
  16. ThoughtWorks 2018校招作业
  17. js 排序 字符串内含数字字母特殊符号排序
  18. 2021.4.17日简报:五子登科、BMEX、优选家、加电、链淘等项目
  19. 曼切斯特大学计算机专业世界排名,2021年曼彻斯特大学在世界排名第几?哪些专业在全球TOP50?...
  20. 百度网盘秒传链接怎么用及实现原理

热门文章

  1. rk3399硬件设计指南_CMMI2实施过程系列-系统设计
  2. python中的os abort_Python::OS 模块 -- 进程管理
  3. bitnamigitlab_Bitnami Gitlab 安装配置 step by step
  4. JavaScript中ajax如何不刷新,JavaScript基于Ajax实现不刷新在网页上动态显示文件内容...
  5. 联想一体机电源键不亮_联想/兄弟打印机复印一体机激光器清洁教程
  6. 机器学习基础-主成分分析PCA-16
  7. 使用jQuery实现图片懒加载原理
  8. super() 函数??
  9. leetCode题解之Jewels and Stones
  10. php常见的验证方法