使用mysqldump导出SQL查询结果

时间:2019-06-13 07:59:20

标签: mysql csv ubuntu export putty

我试图通过命令行在腻子中导出数据库的多个表,但是腻子不断向我抛出错误。我也想在导出中维护数据的表架构。我一直在尝试下面的命令,但是我不确定这是怎么回事,

mysqldump -u(username) -p(password) (dbname) "select * from (tablename);" > output.csv
  

错误:找不到表:“从分配中选择*;”

我正在尝试导出多个表的所有行和列。我也无法在SQL中使用OUTFILE选项,因为选中了secure-file-priv选项,并且无法更改它。我唯一的选择是将表数据导出到腻子终端上,希望导出为csv文件,以便可以在excel中打开它。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您需要在命令中列出表名,而不是select查询。

像这样(请注意,这将输出SQL而不是CSV):

mysqldump -u(username) -p(password) (dbname) (tablename1) (tablename2) > output.sql

如果要使用mysqldump输出CSV,可以使用--tab选项:

mysqldump --tab=/tmp --fields-enclosed-by='"' --fields-terminated-by="," --lines-terminated-by="\n" --no-create-info  (dbname) (tablename)

如果您确实需要运行查询并输出CSV,则可以使用mysql客户端:

mysql --batch -e "select * from (tablename) where x=y" > output.csv

这将创建TAB格式的CSV。