2012-07-31 28 views
12

He creado una instancia de RDS llamada realcardiodb (el motor es mysql) y exporté mi base de datos de mi servidor local. El archivo se guarda localmente llamado localhostrealcardio.sql¿Cómo importo una instancia de db de MySQL local a RDS db?

La mayoría de las investigaciones indican que se debe usar mysqldump para importar datos de un sistema local a un servidor web, pero mi sistema ni siquiera reconoce mysqldump.

C:\xampp\mysql>mysqldump 
'mysqldump' is not recognized as an internal or external command, operable program or batch file. 

¿Cómo puedo resolver este error si utilizo mysqldump? (Definitivamente tengo mysql instalar en mi sistema)

¿Existe alguna mejor utilidad que deba usar?

Se agradece cualquier ayuda, especialmente si tiene experiencia en importar mysql a aws rds.

Gracias! DK

actualización 7/31/2012 Por lo tanto, se resolvió el error. mysqldump se encuentra en el directorio bin C: \ xampp \ mysql \ bin> mysqldump AWS proporciona las instrucciones folloinwg para cargar una base de datos local para RDS:

mysqldump acme | mysql --host=hostname --user=username --password acme 

Puede alguien descomponerlo para mí?

1) ¿Es el primer 'acme' (después del comando mysqldump) el nombre de mi base de datos local o el archivo sql exportado que guardé localmente?

2) ¿El nombre de host es la dirección IP, DNS público, punto final RDS o ninguno?

3) El nombre de usuario y la contraseña supongo que son las credenciales RDS y el segundo acme es el nombre de la base de datos que creé en RDS.

Gracias!

+0

Parece que esto podría ser tan simple [como un problema de variable de entorno PATH.] (Http://forums.mysql.com/read.php?28,24329,24375 # msg-24375) Miedo de que no pueda ayudar más. No soy un usuario de Windows. – Christopher

Respuesta

31

Así es como lo hice por un par de instancias que tenían datos en las tablas de MySQL.

Los pasos para crear una instancia de base de datos RDS: http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html

Nota: Asegúrese de que la instancia RDS tiene un grupo de seguridad configurado que se relaciona con el grupo de seguridad de EC2. http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Workin ...

Antes de seguir adelante, que me proporciono una lista de lo que algunos de los siguientes marcadores de posición son:

  • host.address.for.rds.server = esto será lo que se conoce como el "punto final" en la página de descripción/configuración de RDS.
  • rdsusername = la cuenta de usuario principal que creó durante la configuración de RDS.
  • rdsdatabase = una base de datos en blanco que ha creado dentro del servidor en su instancia de RDS.
  • backupfile.sql = el archivo de volcado sql que hizo de la base de datos de su instalación preexistente.

Una vez que haya creado una nueva instancia de base de datos RDS y haya configurado su configuración de seguridad, inicie sesión en este servidor (desde una sesión ssh a su servidor EC2) y luego cree una base de datos vacía Comandos SQL

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p 
(enter your password) 
create database rdsdatabase; 

Salga del entorno MySQL dentro de su servidor RDS.

\q 

Este tutorial supone que ya tiene una copia de seguridad de su base de datos anterior. Si no lo hace, vaya a crear uno ahora. Después de eso, está listo para importar ese archivo de volcado sql a la base de datos vacía que espera en su servidor RDS.

mysql -h host.address.for.rds.server -u rdsusername -p rdsdatabase < backupfile.sql 

Tardará unos segundos en completarse, dependiendo del tamaño del archivo de volcado sql. Su indicación de que ha finalizado es que reaparece el indicador del comando bash.

Nota: el comando "mysqlimport" se usa cuando se importan datos directamente en una tabla existente dentro de una base de datos. Puede parecer que estamos "importando" datos, pero esto no es lo que realmente estamos haciendo en esta situación. La base de datos a la que estamos migrando todavía no tiene tablas, y el archivo de volcado sql que estamos usando contiene los comandos sql para generar las tablas que necesita.

confirmar la transferencia

Ahora, si usted no recibió ningún mensaje de error, entonces su traslado sql probablemente funcionó. Si lo desea, puede verificar si se conectó a su servidor de base de datos RDS, buscar la base de datos que creó y verificar si las tablas están ahora presentes.

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p 
(enter your password) 
use rdsdatabase; 
show tables; 
+0

El primer enlace está muerto. ¿Podría verificar? – SkyWalker

+0

@David Csonka ¿Dónde debo guardar mi archivo de copia de seguridad.sql? – DD77

+1

@SkyWalker He editado la respuesta con un enlace fijo. – acobster

0

Aquí está el documento AWS RDS MySQL para importar los datos del cliente en RDS

http://aws.amazon.com/articles/2933

  • Crear archivos planos que contienen los datos para ser cargado
  • detener cualquier aplicación con el acceso a DB de destino Instancia
  • Crear una instantánea DB
  • Desactivar Ama ZON copias de seguridad RDS automatizados
  • carga los datos utilizando mysqlimport
  • Habilitar copias de seguridad automatizadas de nuevo
16

Yo prefiero usar MySQL banco de trabajo. Es mucho más fácil usar & que la línea de comando.

Proporciona una GUI simple.

MySQL workbench o SQL Yog.

Estos son los pasos que hice.

1) Instalar MySQL Workbench.

2) En la consola de AWS, debe haber un grupo de seguridad para su instancia de RDS. Agregue una regla de entrada a ese grupo para permitir las conexiones desde su máquina. Es simple. Agregue su dirección IP.

3) Abra MySQL workbench, agregue una nueva conexión.

4) Proporcione a la conexión el nombre que prefiera.

5) Elija la conexión método- estándar TCP/IP

6) Introduzca su punto final RDS en el campo de nombre de host.

7) Puerto: 3306

8) Nombre de usuario: nombre de usuario principal (la que el que se creó durante la creación de la instancia RDS)

9) Contraseña: contraseña maestra

10) Haga clic en Probar conexión para verificar su conexión.

11) Si la conexión se realiza correctamente, haga clic en Aceptar.

12) Abra la conexión.

13) verá allí su base de datos 'realcardiodb'.

14) Ahora puede exportar su archivo mysqldump a esta base de datos. Ir a-> Servidor. Haga clic en Importar datos.

15) Puede comprobar si los datos se han migrado simplemente abriendo un archivo SQL en blanco & escribiendo comandos SQL básicos como use database, seleccione * from table;

Eso es todo. Viola.

+0

Cuando crea una instancia de RDS con el asistente, se crea automáticamente un grupo de seguridad con la dirección IP de su máquina con un grupo como 'rds-launch-wizard'. – johnnieb

3

Si tiene un backup.sql en su PC, no necesita transferirlo a EC2. Simplemente dé la línea debajo de su terminal en su PC.

$ mysql -h rdsinstance-hostaddress-ending.rds.amazonaws.com -u rds_username -p rds_database < /path/to/your/backup.sql 

Introduce el password: paswd_mysql_user

eso es todo.

copia de seguridad de importación directamente desde el servidor remoto existente

SSH conectarse a su servidor remoto

Obtener el servidor remoto MySQL copia de seguridad (backup/ruta/backupfile.sql) archivo de copia de seguridad

importación a RDS mysql mientras está en el shell del servidor remoto

mysql -h your-mysql-instance.region.rds.amazonaws.com -u db_username -p db_name < backup/path/backupfile.sql 

Nota:

He intentado todos los criterios anteriores para importar mi copia de seguridad existente a la nueva base de datos RDS, incluso a través de EC2 como en la documentación de AWS. Fue una copia de seguridad de 10 GB. Así que he intentado tablas por tablas también. Muestra el proceso completado, pero faltaban algunos datos para las tablas grandes. Así que tuve que escribir un script de migración de datos DB a DB.

Cuestiones relacionadas