2018 Oct. 21.
mysql> grant file on *.* to 'USER'@'localhost' ;
(カンマ区切り、二重引用符囲みで/var/lib/mysql-files/ディレクトリに出力)
--secure-file-priv が設定された状態であれば
SELECT @@secure_file_priv; を実行し
出力表示されたディレクトリにCSVファイルを保存するようにする。
mysql> select * from TABLE WHERE CONDITION INTO OUTFILE "/var/lib/mysql-files/TEXTFILENAME" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n";
(列名を先頭行につけて出力)
mysql> select 'col1','col2', ... union select * from TABLE WHERE CONDITION INTO OUTFILE "/var/lib/mysql-files/TEXTFILENAME" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n";
書き込み先はmysqlユーザが書き込み権限のあるディレクトリでないと
いけない。
/tmpディレクトリが無難。
書込先ファイルの上書きはできない。ので、同名ファイルは削除しておく。
Output csv-file for standard-output.(二重引用符囲み無し。カンマ区切り)
$ mysql -u USER --password='PASSWORD' -e "SELECT * from TABLE" DATABASE | sed -e 's/\t/,/g' > outfile.csv
(sample)
$ mysql --user epgrec --password='PASSWORD' -e 'SELECT path,starttime,title,description,type,channel from Recorder_reserveTbl where complete = 1 and dirty = 0 order by starttime desc' epgrec | sed -e 's/\t/,/g' > ~/video_list.csv
SQL文の入力待ちになったところで
select path from Recorder_reserveTbl order by path asc ;
\q
と入力するとファイルが作成される。
csvファイル書き出し
ユーザにfile権限を付与する
$ mysql -u root -p DATABASEmysql> grant file on *.* to 'USER'@'localhost' ;
当該ユーザー でmysqlに接続してファイル出力する
$ mysql -u USER -p DATABASE(カンマ区切り、二重引用符囲みで/var/lib/mysql-files/ディレクトリに出力)
--secure-file-priv が設定された状態であれば
SELECT @@secure_file_priv; を実行し
出力表示されたディレクトリにCSVファイルを保存するようにする。
mysql> select * from TABLE WHERE CONDITION INTO OUTFILE "/var/lib/mysql-files/TEXTFILENAME" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n";
(列名を先頭行につけて出力)
mysql> select 'col1','col2', ... union select * from TABLE WHERE CONDITION INTO OUTFILE "/var/lib/mysql-files/TEXTFILENAME" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n";
書き込み先はmysqlユーザが書き込み権限のあるディレクトリでないと
いけない。
/tmpディレクトリが無難。
書込先ファイルの上書きはできない。ので、同名ファイルは削除しておく。
Output csv-file for standard-output.(二重引用符囲み無し。カンマ区切り)
$ mysql -u USER --password='PASSWORD' -e "SELECT * from TABLE" DATABASE | sed -e 's/\t/,/g' > outfile.csv
(sample)
$ mysql --user epgrec --password='PASSWORD' -e 'SELECT path,starttime,title,description,type,channel from Recorder_reserveTbl where complete = 1 and dirty = 0 order by starttime desc' epgrec | sed -e 's/\t/,/g' > ~/video_list.csv
sql結果のファイル出力
$ mysql --user epgrec --password='epgrec106' epgrec > OUTFILESQL文の入力待ちになったところで
select path from Recorder_reserveTbl order by path asc ;
\q
と入力するとファイルが作成される。
0 件のコメント:
コメントを投稿