是否可以通过单个SQL查询来做mysqldump ?

我的意思是转储整个数据库,就像phpmyadmin在导出到SQL时所做的那样


当前回答

MySQL Workbench在GUI中也有这个功能。简单地运行一个查询,点击导出/导入旁边的保存图标:

在列表中选择“SQL INSERT语句(*. SQL)”。

输入一个名称,单击保存,确认表名,您将有您的转储文件。

其他回答

这应该可以

mysqldump --databases X --tables Y --where="1 limit 1000000"

如果您想从表中转储特定的字段,这可能很方便

1/创建临时表与你的查询。

create table tmptable select field1, field2, field3 from mytable where filter1 and fileter2 ;

2/ dump整个临时表。然后就有了包含特定字段的转储文件。

mysqldump -u user -p mydatabase tmptable > my-quick-dump.sql

结合以上大部分内容,这里是我的实际示例,基于计量和时间戳选择记录。多年来我一直需要这个命令。执行得非常快。

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

您可以像这样将查询转储为csv:

SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

MySQL Workbench在GUI中也有这个功能。简单地运行一个查询,点击导出/导入旁边的保存图标:

在列表中选择“SQL INSERT语句(*. SQL)”。

输入一个名称,单击保存,确认表名,您将有您的转储文件。