您的位置:首页 > 数据库 > MySQL

导入导出mysql表数据到csv

2011-04-14 16:02 716 查看
导出:

SELECT字段名INTOOUTFILE'路径'

FIELDSTERMINATEDBY','

OPTIONALLYENCLOSEDBY'"'

LINESTERMINATEDBY'\n‘'FROM表名

FROM表名也可以写在into前面

导入:

LOADDATAINFILE'e:/productsupplier.csv'REPLACEINTOTABLE`productsupplier`FIELDSTERMINATEDBY','OPTIONALLYENCLOSEDBY'"'ESCAPEDBY'//'LINESTERMINATEDBY'\r\n'

为同名城市加上洲名作为后缀

update表名ci1setci1.city_name=CONCAT(ci1.city_name,'_',ci1.state)whereci1.city_namein(selectcity_namefrom(selectcity_name,state,count(*)asnumfromus_city_top1000cigroupbycity_name)asgwhereg.num>1)

selectcount(*)frombbs.testintooutfile'/web/file.txt';

ERROR1(HY000):Can'tcreate/writetofile'/web/file.txt'(Errcode:13)

上网查找相关的信息,说是selinux的问题,但是服务器上的selinux是已经关闭的,应该是权限的问题吧

按照网上查到的资料,有人写到/tmp目录下是可以的,试一下果然是ok的,猜想应该是权限的问题了,查看/web和/tmp目录权限的区别

drwxrwxrwt.3rootroot40966月2903:15tmp

drwxr-xr-x.7rootroot40966月2915:07web

两个目录的权限确实不一样,/tmp目录具有777的权限

在/web目录下新建一个tt的目录,并赋予777的权限

chown–R777/web/tt

再将mysql的查询结果输出到/web/tt/file.txt目录下

mysql>selectcount(*)fromwp_testintooutfile'/web/tt/file.txt';

QueryOK,1rowaffected(0.06sec)

嗯,ok了

查看导出来的文件的权限

-rw-rw-rw-.1mysqlmysql56月2915:08/web/tt/file.txt

因为selectintooutfile的命令是mysql的daemon来负责写文件操作的,需要对文件具有写的权限,而/web目录的权限为755,mysql不具有对文件写的权限,所以就报不能create/write了,而/tmp是777的权限,所以也就是为什么能够写入的原因

1
1、用mysql导出时,如果文件目录没有权限,可以将文件导出到
mysql库所在的服务器上的/tmp/目录下(推荐<span></span>)
2
3
select
*
from
s_reviews
where
stars
>0limit10
into
outfile
'/tmp/reviews.csv'
fields
terminated
by
','
optionally
enclosed
by
'"'
escaped
by
'"'
lines
terminated
by
'\n'
;
1
2、从csv文件导入数据,导入的时候<span></span><span></span>,可以将要导入的文件先复制到
mysql库所在的服务器上的/tmp/目录下(推荐<span></span>)。
2
要将csv文件的字段和mysql表中的字段对应起来,以免出错,同时也可以提醒自己导入的是哪些数据
3
4
LOAD
DATA
LOCAL
INFILE
'/tmp/reviews.csv'
INTO
TABLE
s_reviews
fieldsterminated
by
','
optionally
enclosed
by
'"'
escaped
by
'"'
lines
terminated
by
'\n'
(`id`,
`user_id`,`user_name`,`shop_id`,`shop_name`,`arv_price`,`environment`,`taste_or_product`,`service`,`comment_type`,`comment`,`stars`,`review_time`,`fetch_time`);
1
说明:
2
3
FIELDS
TERMINATED
BY
----
字段终止字符
4
OPTIONALLY
ENCLOSED
BY
----
封套符,将字段值包围起来,比如常用的:"(英文双引号),详细使用可以参见本文的例子!!
5
LINES
TERMINATED
BY
----
行终止符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: