可以mysqldump
单人做吗SQL query
吗?
我的意思是转储整个数据库,就像phpmyadmin
导出到SQL
可以mysqldump
单人做吗SQL query
吗?
我的意思是转储整个数据库,就像phpmyadmin
导出到SQL
Answers:
不是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
和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,干杯
MySQL Workbench在GUI中也巧妙地具有此功能。只需运行查询,然后单击“导出/导入”旁边的保存图标:
然后在列表中选择“ SQL INSERT语句(* .sql)”。
输入名称,单击“保存”,确认表名称,您将获得转储文件。
mysql导出查询结果命令行:
mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt