mysql导出数据到文件

图示

在这里插入图片描述

语法

跟普通的select查询语句基本一致,只不过是指定了输出地址用于备份文件内容。

select * into outfile '文件保存地址/文件名' from 表名;

实际操作

在操作时可能会出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。这是因为安装时my.ini中secure-file-priv的设置限制了导出导入的目录。可以在客户端输入以下命令查看:

show variables like '%secure%';

此时显示的secure_file_priv对应的value就是导出目录,如果对应的值为NULL,说明my.ini文件没有配置这个选项,就需要配置一下;如果有目录就可以就文件导入到该目录下。当然也可以修改my.ini使得导出目录为任意。
打开my.ini,输入以下内容:
在这里插入图片描述
然后以管理员身份打开cmd,关闭mysql服务器,再打开实现重启服务器就好了。

net stop mysql
net start mysql

最后查询效果如下:在这里插入图片描述
这样就能愉快的使用了。
在这里插入图片描述
最终效果如下:
在这里插入图片描述

细节

  1. 可以自动创建文件,但是不能重写已有文件。

  2. mysql保存的文件格式(默认):
    在这里插入图片描述
    从以上图可知字段与字段之间是以制表符分隔,每个记录以换行符分隔。但是为了满足某种特别的需求,会采用不同的分割方式。可以在导出数据时,设置记录,与字段的分隔符。
    可以通过如下选项:

    fields:设置字段选项。
    默认:fields terminated by '\t' enclosed by ' ' escaped by '\\'      字段结束符、包裹符、转义字符,转义字符一般使用默认的
    Lines:设置行选项(记录选项)。
    默认:lines terminated by '\n' starting by '                         行结束符、行起始符
    

语句:

select * into outfile '文件保存地址/文件名'
fields terminated by  ','
lines terminated by '\n' starting 'start:' 
from 表名;

举例:

select * into outfile 'e:/auto_int33'
    -> fields terminated by ','
    -> lines terminated by '\n' starting by 'start:'
    -> from auto_int3;

在这里插入图片描述

 select * into outfile 'e:/auto_int34'
    -> fields terminated by '\t' enclosed by 'x'
    -> lines terminated by '\n' starting by 'start:'
    -> from auto_int3;

在这里插入图片描述

  1. 常规的,所有记录应该通过行来显示。例外的是保存二进制数据,此时不能使用outfile ,应该使用dumpfile。作用与outfile一致,只不过不做任何换行和转义处理,非常适合导出二进制文件。
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章