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

时间:2021-11-21 11:54:52

      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本地数据存放路径:

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,完成!