回答:
mysqldumpではなく、mysql cli ...
mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase
必要に応じて、ファイルにリダイレクトできます。
mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt
更新:元の投稿で、クエリでデータベースからダンプできるかどうか尋ねられました。彼が尋ねたことと彼が意味したことは異なっていました。彼は本当にすべてのテーブルをmysqldumpにしたかったのです。
mysqldump --tables myTable --where="id < 1000"
これはうまくいくはずです
mysqldump --databases X --tables Y --where="1 limit 1000000"
次のようにクエリをcsvとしてダンプできます。
SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
scp
、接続が終了した後にダンプファイルを取得できます。ここに例があります。 scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
whereクエリを使用してテーブルをダンプします。
mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql
テーブル全体をダンプします。
mysqldump mydatabase mytable > data.sql
ノート:
mydatabase
、mytable
、、希望の値を持つところのステートメント。mysqldump
は、出力にDROP TABLE
and CREATE TABLE
ステートメントが含まれます。したがって、保存したデータファイルから復元するときにテーブル内のすべてのデータを削除しない場合は、--no-create-info
オプションを使用してください。-h
、-u
および-p
それぞれ、ご希望のデータベースのホスト、ユーザー、およびパスワードを指定するために、上記の例のコマンドにオプション。最後のn個のレコードをファイルにエクスポートする場合は、次のコマンドを実行できます。
mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql
上記は、エクスポート元のテーブルに自動インクリメントされたid列があると仮定して、最後の100レコードをexport_file.sqlに保存します。
ユーザー、ローカルホスト、データベース、テーブルの値を変更する必要があります。オプションで、id列とエクスポートファイル名を変更できます。
MySQL WorkbenchもGUIでこの機能をきれいに備えています。クエリを実行するだけで、エクスポート/インポートの横にある保存アイコンをクリックします。
次に、リストから「SQL INSERTステートメント(* .sql)」を選択します。
名前を入力して[保存]をクリックし、テーブル名を確認すると、ダンプファイルが作成されます。
mysqlクエリ結果のコマンドラインをエクスポートします:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt