MySQL通过查询转储
是否有可能通过单个SQL query来执行mysqldump ? 
 我的意思是转储整个数据库,就像phpmyadmin在导出到SQL 
不是mysqldump,但MySQL cli …
 mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase 
你可以redirect到一个文件,如果你想:
 mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt 
更新:原来的post问他是否可以通过查询从数据库转储。 他问的和他的意思是不一样的。 他真的只想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' 
使用where查询转储表:
 mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql 
转储整个表格:
 mysqldump mydatabase mytable > data.sql 
笔记:
-  将mydatabase,mytable和where语句replace为所需的值。
-  默认情况下, mysqldump将在其输出中包含DROP TABLE和CREATE TABLE语句。 因此,如果您希望在从保存的数据文件恢复时不删除表中的所有数据,请确保使用--no-create-info选项。
-  您可能需要在上面的示例命令中添加相应的-h,-u和-p选项,以分别指定所需的数据库主机,用户和密码。
您可以使用mysqldump上的where选项来产生您正在等待的输出:
 mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql 
来自test.t1的最多100行将从数据库表中转储。
干杯,WB
结合上面的大部分内容是我真实的实例,根据meterid和时间戳selectlogging。 我需要这个命令多年。 执行速度非常快。
 mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep '^INSERT' > 5406.sql 
MySQL Workbench在GUI中也有这个特性。 只需运行查询,单击导出/导入旁边的保存图标:
  
 
然后在列表中select“SQL INSERT语句(* .sql)”。
  
 
input一个名称,点击保存,确认表名,你将有你的转储文件。
mysql导出查询结果命令行:
 mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt