使用 mysqldump 导出 SQL 查询结果

Exporting SQL query results with mysqldump

我正在尝试通过命令行在 putty 中导出多个 table 数据库,但 putty 一直向我抛出错误。我也想在导出中维护数据的 table 模式。我一直在尝试以下命令,但我不确定它有什么问题,

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

Error: Couldn't find table: "select * from assign;"

我正在尝试导出多个 table 的所有行和列。我也无法在 SQL 中使用 OUTFILE 选项,因为已选中 secure-file-priv 选项,我无法更改它。我唯一的选择是在 putty 终端上导出 table 数据,希望作为 csv 文件,以便我可以在 excel.

中打开它

非常感谢您的帮助。

您需要在命令中列出 table 名称,而不是 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。