我试图通过命令行在腻子中导出数据库的多个表,但是腻子不断向我抛出错误。我也想在导出中维护数据的表架构。我一直在尝试下面的命令,但是我不确定这是怎么回事,
mysqldump -u(username) -p(password) (dbname) "select * from (tablename);" > output.csv
错误:找不到表:“从分配中选择*;”
我正在尝试导出多个表的所有行和列。我也无法在SQL中使用OUTFILE选项,因为选中了secure-file-priv选项,并且无法更改它。我唯一的选择是将表数据导出到腻子终端上,希望导出为csv文件,以便可以在excel中打开它。
非常感谢您的帮助。
答案 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。