使用 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。
我正在尝试通过命令行在 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。