【发布时间】:2019-05-25 05:13:23
【问题描述】:
我有一个 ec2-instance,上面有 mysql 数据库,现在有多个表具有巨大的值,我想将这些表导出到我的本地系统中的 excel 表中,甚至 S3 的某个地方也可以工作,我该怎么做实现这个?
【问题讨论】:
标签: amazon-s3 amazon-ec2 aws-sdk amazon-rds
我有一个 ec2-instance,上面有 mysql 数据库,现在有多个表具有巨大的值,我想将这些表导出到我的本地系统中的 excel 表中,甚至 S3 的某个地方也可以工作,我该怎么做实现这个?
【问题讨论】:
标签: amazon-s3 amazon-ec2 aws-sdk amazon-rds
鉴于您在 EC2 节点上安装了自己的 MySQL 实例,您应该可以完全访问 MySQL 的功能。我看不出有什么理由你不能在这里做一个SELECT ... INTO OUTFILE:
SELECT *
FROM yourTable
INTO OUTFILE 'output.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
获得 CSV 文件后,您可以将其传输到运行 Excel 的盒子中,并使用 Excel 导入向导导入数据。
编辑:
根据您下面的 cmets,您可能需要仔细选择 MySQL 和您的用户有权写入的输出路径和位置。
【讨论】:
另一种从 RDS Mysql 导出 CSV 文件而不获取 Access denied for user '<databasename>'@'%' (using password: YES) 的方法是执行以下命令:
mysql -u username -p --database=dbname --host=rdshostname --port=rdsport --batch -e "select * from yourtable" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > yourlocalfilename.csv
秘诀就在这部分:
--batch -e "select * from yourtable" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > yourlocalfilename.csv
【讨论】: