导入导出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的权限,所以也就是为什么能够写入的原因
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 by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n' (`id`, |
1 | 说明: |
2 |
3 | FIELDS BY ---- 字段终止字符 |
4 | OPTIONALLY BY ---- |
5 | LINES BY ---- 行终止符 |
相关文章推荐
- 用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件
- 从mysql导出csv数据 并再将csv导入oracle
- 【MySQL】数据导出导入成CSV格式
- mysql 导入导出csv文件数据语法
- mysql 跨服务器数据_导入/导出 csv
- csv格式导入导出mysql数据
- MySQL数据导入导出csv文件命令
- redis cannot assign requested address mysql;数据表导出为csv格式;C++项目导入eclipse流程
- MySQL数据导入导出csv文件命令
- Bash中使用MySQL导入导出CSV格式数据
- Bash中使用MySQL导入导出CSV格式数据[转]
- 用php导入10W条+ 级别的csv大文件数据到mysql。导出10W+级别数据到csv文件
- csv数据导入导出mysql的方法
- mysql 导出导入数据 -csv
- mysql导入导出.csv格式数据
- MySQL数据的导出和导入工具:mysqldump(备份数据库的命令)
- PHP 将MySQL数据导出csv
- MySQL数据的导出和导入工具
- mysql导入导出csv
- MySQL数据的导出和导入工具-- mysqldump