bak aws mysql amazon-web-services amazon-rds

mysql - aws - restore database amazon rds



Exportar tabla desde Amazon RDS a un archivo csv (2)

Tengo una base de datos mysql ejecutándose en Amazon RDS, y quiero saber cómo exportar una tabla completa al formato csv. Actualmente uso el servidor de MySQL en Windows para consultar la base de datos de Amazon, pero cuando intento ejecutar una exportación, aparece un error, probablemente porque no hay un servidor de archivos dedicado para amazon RDS. Hay alguna solución para esto?


Estoy usando Yii Framework en EC2 conectándose a RDS mySQL. La clave es usar fputcsv (). Lo siguiente funciona perfectamente, tanto en mi servidor local como en producción.

$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);


Presumiblemente, está tratando de exportar de una base de datos de Amazon RDS a través de una consulta SELECT ... INTO OUTFILE , que produce este problema comúnmente encontrado, por ejemplo, exportar base de datos a CSV . La respuesta del equipo AWS confirma su supuesto de falta de acceso al servidor que impide una exportación como esta, y sugiere un enfoque alternativo también exportando sus datos en formato CSV seleccionando los datos en el cliente de línea de comandos mysql y canalizando la salida para reformatear los datos como CSV , así:

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

El usuario fpalero proporciona un enfoque alternativo y supuestamente más simple, si conoce y especifica los campos por adelantado:

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

¡Buena suerte!