MySQL备份-LOAD DATA
注意,使用load data备份恢复方式,表结构必须存在;
使用select ...into outfile
备份数据
语法格式如下:
select 语句 into outfile BACKFILE [OPTIONS]
[OPTIONS]
- fields terminated by ‘字符串’ : 字符串分割符,默认是制表符’\t’
- fileds escaped by ’字符‘ : 转义字符,默认是’\‘
- fileds [optionally] enclose by 字符’‘: 字段引用符,负责向字段值两端加上字段引用符。如果使用optionally 选项,则表示字符串类型上添加字段分隔符。
- lines starting by ‘字符串’,每条记录前添加该字段。
- lines terminated by ’字符串‘,每条记录后添加该字符串,默认是换行符 ‘\n’
例如:
mysql> select * from test.t1 into outfile '/data/mysql/t1_bak';
Query OK, 3 rows affected (0.01 sec)
结果会生成在/data/mysql/
目录下,对应的数据库目录下面。可以直接使用cat命令查看。
[root@lyucan ~]# cat /data/mysql/t1_bak
1 张三 12 南京
2 李四 21 北京
3 王五 23 上海
恢复表数据:
使用load data infile...
快速地从一个指定格式的文本文件中读取数据到一个数据库表中。
语法:
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
例如:
mysql> delete from test.t1;
Query OK, 3 rows affected (0.00 sec)
mysql> LOAD DATA INFILE '/data/mysql/t1_bak' INTO TABLE test.t1;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from test.t1;
+----+--------+-----+--------+
| id | name | age | addr |
+----+--------+-----+--------+
| 1 | 张三 | 12 | 南京 |
| 2 | 李四 | 21 | 北京 |
| 3 | 王五 | 23 | 上海 |
+----+--------+-----+--------+
3 rows in set (0.00 sec)
注意:如果导出数据的时候后面使用了分隔符,导入的时候不需要加,还是按照上面的方式导;
更复杂的配置就不写了,没什么必要,还增加大脑的负担。等用到的时候,去网上查找具体的参数即可,我们并不擅长记忆这些并不常用的选项。 一句话概括这种逻辑备份的精要:怎么吃我的,怎么给我吐出来。怎么吐出来来,怎么给我装进去。选用了什么样的分割选项,导入数据的时候就需要使用对应的分割选项去导入数据。 结合我自己平时的工作内容与实践,基本上不使用这种方式导出。反而使用mysqldump 更多一点。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com