mysqlテーブルデータのcsvへのエクスポートのインポート
エクスポート:
SELECTフィールド名INTO OUTFILE'パス'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINE TERMINTED BY'''''FROM表名
FROM表名はintoの前に書くこともできます
インポート:
LOAD DATA INFILE 'e:/productsupplier.csv' REPLACE INTO TABLE `productsupplier`FIELDS TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'ESCAPED BY '//'LINES TERMINATED BY '\r'
同名の都市に洲名を付けて接尾辞とする
updateテーブル名ci 1 set ci 1.city_name = CONCAT(ci1.city_name, '_',ci1.state) where ci1.city_name in (select city_name from(select city_name,state, count(*) as num from us_city_top1000 ci group by city_name) as g where g.num>1)
select count(*) from bbs.test into outfile '/web/file.txt';
ERROR 1 (HY000): Can't create/write to file '/web/file.txt' (Errcode: 13)
インターネットを利用して関連する情報を探して、selinuxの問題だと言って、しかしサーバーの上のselinuxはすでに閉じたので、権限の問題でしょう
ネットで調べた資料によると、/tmpディレクトリの下に書いてある人がいますが、試してみるとやはりokで、権限の問題だと思います./webと/tmpディレクトリの権限の違いを見てみましょう.
drwxrwxrwt.3 root root 4096 6月29 03:15 tmp
drwxr-xr-x.7 root root 4096 6月29 15:07 web
2つのディレクトリの権限は確かに異なります./tmpディレクトリには777の権限があります.
/webディレクトリの下にttディレクトリを新規作成し、777の権限を付与
chown –R 777/web/tt
mysqlのクエリー結果を/web/tt/fileに出力します.txtディレクトリの下
mysql> select count(*) from wp_test into outfile '/web/tt/file.txt';
Query OK, 1 row affected (0.06 sec)
うん、OK
エクスポートされたファイルを表示する権限
-rw-rw-rw-. 1 mysql mysql 5 6月29 15:08/web/tt/file.txt
select into outfileのコマンドはmysqlのdaemonがファイルを書く操作を担当しているので、ファイルに書く権限が必要ですが、/webディレクトリの権限は755でmysqlはファイルを書く権限がないので、create/writeは報告できませんが、/tmpは777の権限なので、なぜ書けるのかということです
SELECTフィールド名INTO OUTFILE'パス'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINE TERMINTED BY'''''FROM表名
FROM表名はintoの前に書くこともできます
インポート:
LOAD DATA INFILE 'e:/productsupplier.csv' REPLACE INTO TABLE `productsupplier`FIELDS TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'ESCAPED BY '//'LINES TERMINATED BY '\r'
同名の都市に洲名を付けて接尾辞とする
updateテーブル名ci 1 set ci 1.city_name = CONCAT(ci1.city_name, '_',ci1.state) where ci1.city_name in (select city_name from(select city_name,state, count(*) as num from us_city_top1000 ci group by city_name) as g where g.num>1)
select count(*) from bbs.test into outfile '/web/file.txt';
ERROR 1 (HY000): Can't create/write to file '/web/file.txt' (Errcode: 13)
インターネットを利用して関連する情報を探して、selinuxの問題だと言って、しかしサーバーの上のselinuxはすでに閉じたので、権限の問題でしょう
ネットで調べた資料によると、/tmpディレクトリの下に書いてある人がいますが、試してみるとやはりokで、権限の問題だと思います./webと/tmpディレクトリの権限の違いを見てみましょう.
drwxrwxrwt.3 root root 4096 6月29 03:15 tmp
drwxr-xr-x.7 root root 4096 6月29 15:07 web
2つのディレクトリの権限は確かに異なります./tmpディレクトリには777の権限があります.
/webディレクトリの下にttディレクトリを新規作成し、777の権限を付与
chown –R 777/web/tt
mysqlのクエリー結果を/web/tt/fileに出力します.txtディレクトリの下
mysql> select count(*) from wp_test into outfile '/web/tt/file.txt';
Query OK, 1 row affected (0.06 sec)
うん、OK
エクスポートされたファイルを表示する権限
-rw-rw-rw-. 1 mysql mysql 5 6月29 15:08/web/tt/file.txt
select into outfileのコマンドはmysqlのdaemonがファイルを書く操作を担当しているので、ファイルに書く権限が必要ですが、/webディレクトリの権限は755でmysqlはファイルを書く権限がないので、create/writeは報告できませんが、/tmpは777の権限なので、なぜ書けるのかということです
1
1、 mysql , , mysql /tmp/ ( <span></span>)
2
3
select
*
from
s_reviews
where
stars >0 limit 10
into
outfile
'/tmp/reviews.csv'
fields terminated
by
','
optionally enclosed
by
'"'
escaped
by
'"'
lines terminated
by
'
'
;
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 fields terminated
by
','
optionally enclosed
by
'"'
escaped
by
'"'
lines terminated
by
'
'
(`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
----