红联Linux门户
Linux帮助

Linux下txt文件与mysql数据库导入导出

发布时间:2016-09-23 15:51:27来源:linux网站作者:一米阳光213
txt文本文件和mysql数据库之间相互导入导出是经常的事情,本文简要的介绍一下方法。
实验环境:Ubuntu 14.04、Mysql 5.5
 
(1)txt文件导入mysql数据库
假设 mysql 数据库中存在一张表 person :
create table person  
(  
id   int ,  
name varchar(30) ,  
sex  char  
);
txt 文本文件: people.txt :
1 张三 m  
2 李四 m  
3 王五 f  
4 赵六 f  
注意:
1.请确保people.txt的字符编码和mysql的字符编码一致,这里我都默认为 utf8 .如果对字符编码不确定,可以搜索下。
2.people.txt 中每一行的分隔符可以是空格,TAB, ; 等 ,我使用空格作为分隔符
 
接下来就是将people.txt导入mysql数据库了,一开始,我使用了下面的SQL语句:
load data infile '/home/sam/people.txt' into table person;  
报错:ERROR 13 (HY000): Can't get stat of '/home/sam/people.txt' (Errcode: 2)
网上有人说,应该加上 local 关键字,于是有下面:
load data local infile '/home/sam/people.txt' into table person;  
报错:ERROR 1148 (42000): The used command is not allowed with this MySQL version
最后在 StackOverflow上面找到了解决方法。
 
首先查看mysql本地数据存放路径:
Linux下txt文件与mysql数据库导入导出
由此可知,mysql 的工作路径就是 datadir/数据库名 , 因为我使用了 test 数据库 , 因此我的 mysql工作路径就是:
/var/lib/mysql/test
 
第一步,将 people.txt 复制到工作路径:
sudo cp /home/sam/people.txt /var/lib/mysql/test  
 
第二步,执行SQL语句:
Linux下txt文件与mysql数据库导入导出
注意后面的那一行“ fields terminated by ' ' " ,说明各个字段之间的分隔符。
好了,查看是否成功:
Linux下txt文件与mysql数据库导入导出
至此,txt文本文件导入 mysql 成功!
 
(2) mysql 导出到 txt 文本文件
这个过程是上一个的逆过程。
第一步,SQL语句如下:
Linux下txt文件与mysql数据库导入导出
此时的 mysql_txt.txt文件在 /var/lib/mysql/test 目录下面,因此需要复制出来。
第二步,复制文件:
sudo cp /var/lib/mysql/test/mysql_txt.txt /home/sam/mysql_txt.txt  
当然,目标位置随意。
OK,完成!
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24414.html