mysqlクエリー結果をファイルにエクスポート

2754 ワード

環境:mysql
1基本手順
mysql shellに入ります
mysql -u USERNAME --password=PASSWORD --database=DATABASE

次に、クエリー結果のエクスポートコマンドを入力します.
select * from table1   into outfile '/data/test1.txt'

2問題と修正
1.1 ERROR 1045
エラーERROR 1045(28000):Access denied for user'USERNAME'@'localhost(using password:YES)は、このアカウントの権限が足りないことを意味します.
その後rootアカウントに切り替えて以上の操作を行います.以上のクエリ結果のエクスポートコマンドを実行します.
1.2 Errcode: 13
エラーERROR 1(HY 000):Can't create/write to file'/data/test 1.txt’(Errcode:13)は,パス/dataに書き込み権限がないためである.現在のパスを表示mysql shell
\! pwd

表示/data
現在のアカウントが/dataパスに書き込み権限を持っているかどうかを確認します.mysql shell
\T /data/test1.txt

表示された場合:mysql:Can't create/write to file'/data'(Errcode:21)Error logging to file'/data'は書き込み権限がないことを示します.ロギングto file'/data/test 1のみが表示される場合.txt’は、書き込み権限を有することを示す.
パスに書き込み権限がない場合.linux shellに戻り、パスに権限を付与できます.
chmod 757 /data

次に、クエリー結果のエクスポートコマンドを実行します.
3その他の方法
また、linux shellでクエリー結果を直接エクスポートすることもできます.
mysql -u USERNAME --password=PASSWORD --database=DATABASE --execute='select * from table1 ' -X > /data/test2.txt

以上のクエリ結果test 1について説明する.txtとtest 2.txt、データ形式は違います.test1.txtでは、各カラムのデータの各行が表示されます.test2.txtはxml形式で示されている.
参考記事:https://stackoverflow.com/questions/2783313/how-can-i-get-around-mysql-errcode-13-with-select-into-outfile
https://stackoverflow.com/questions/20446655/cant-create-write-to-file-xxxx-txt-errcode-13-permission-denied