将表从Amazon RDS导出到csv文件

我有一个在Amazon RDS中运行的mysql数据库,我想知道如何将整个表导出为csv格式。 我目前在Windows上使用MySQL服务器来查询亚马逊数据库,但是当我尝试运行一个导出时,我得到一个错误,可能是因为没有专门的文件服务器的亚马逊RDS。 有没有解决这个问题?

据推测,您正试图通过SELECT ... INTO OUTFILE查询从Amazon RDS数据库导出,这产生了这个确实经常遇到的问题,请参阅将数据库导出为CSV 。 相应的AWS团队响应确认了您对缺less服务器访问的假设,从而阻止了这样的导出,并且通过selectmysql命令行客户端中的数据并通过pipe道输出重新格式化数据,以CSV格式导出数据 ,并build议了一种替代方法作为CSV ,如下所示:

 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 

用户fpalero 提供了一个替代方法,并且假设是更简单的方法,如果您知道并预先指定了字段:

 mysql -uroot -ppassword --database=dbtest -e "select concat(field1,',',field2,',',field3) FROM tabletest" > tabletest.csv 

祝你好运!

我在EC2上使用Yii Framework连接到RDS mySQL。 关键是使用fputcsv()。 以下作品完美无瑕,在我的本地主机以及生产。

 $file = 'path/to/filename.csv'; $export_csv = "SELECT * FROM table"; $qry = Yii::app()->db->createCommand($export_csv)->queryAll(); $fh = fopen($file, "w+"); foreach ($qry as $row) { fputcsv($fh, $row, ',' , '"'); } fclose ($fh);