首页 > 解决方案 > 如何在 docker 容器内运行 SQL 查询并将结果导出到容器外 (.CSV)

问题描述

在 SQL 服务器中,我尝试使用以下命令导出 CSV 文件

mysql> mysql -u username -p --host=rdshostname --port=rdsport --batch -e "select * from yourtable" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//' > export.csv

但没有运气,那么我如何将上述查询结果导出到 CSV 文件?

标签: mysqldocker

解决方案


最简单的方法是在容器内运行查询,然后将结果导出到主机上的文件。

docker exec -it some-mysql bash -c 'mysql -h myhost -u root -pPassword --database sample --batch -e "select * from company"' 

这将打印查询结果,现在将结果输出重定向到主机上的文件。

docker exec -it some-mysql bash -c 'mysql -h myhost -u root -pPassword --database sample --batch -e "select * from company"'  > sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//' > company.csv

然后将文件从主机上传到s3

aws s3 cp company.csv s3://mybucket/rds/mydb/table.csv

公司样本数据库


推荐阅读