txt文本文件和mysql数据库之间相互导入导出是经常的事情,本文简要的介绍一下方法。
实验环境: Ubuntu 14.04 Mysql 5.5
(1)txt文件导入mysql数据库
假设 mysql 数据库中存在一张表 person :
<span style="font-size:14px;">create table person
(
id int ,
name varchar(30) ,
sex char
);</span>
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
最后在 *上面找到了解决方法。 首先查看mysql本地数据存放路径:
由此可知,mysql 的工作路径就是 datadir/数据库名 , 因为我使用了 test 数据库 , 因此我的 mysql工作路径就是:
/var/lib/mysql/test
第一步 , 将 people.txt 复制到工作路径 :
sudo cp /home/sam/people.txt /var/lib/mysql/test
第二步,执行SQL语句:
注意后面的那一行“ fields terminated by ' ' " ,说明各个字段之间的分隔符。
好了,查看是否成功:
至此,txt文本文件导入 mysql 成功!
(2) mysql 导出到 txt 文本文件
这个过程是上一个的逆过程 。
第一步 , SQL语句如下:
此时的 mysql_txt.txt文件在 /var/lib/mysql/test 目录下面,因此需要复制出来。
第二步,复制文件:
sudo cp /var/lib/mysql/test/mysql_txt.txt /home/sam/mysql_txt.txt当然,目标位置随意。
OK,完成!