2008-09-19 12 views
375

Me dieron un archivo de base de datos MySQL que necesito restaurar como una base de datos en mi máquina con Windows Server 2008.¿Cómo restauro un archivo de volcado de mysqldump?

He intentado utilizar MySQL Administrator, pero tengo el siguiente error:

The selected file was generated by mysqldump and cannot be restored by this application.

¿Cómo consigo este trabajo?

Respuesta

406

Debe ser tan simple como ejecutar esto:

mysql -u <user> -p < db_backup.dump 

Si el vertedero es de una sola base de datos que puede que tenga que añadir una línea en la parte superior del archivo:

USE <database-name-here>; 

Si era un vertedero de muchas bases de datos, las declaraciones de uso ya están allí.

Para ejecutar estos comandos, abrir un símbolo del sistema (en Windows) y cd al directorio donde el ejecutable es mysql.exe (puede que tenga que mirar un poco por ella, que va a depender de cómo instaló MySQL, es decir, independiente o como parte de un paquete como WAMP). Una vez que esté en ese directorio, debería poder simplemente escribir el comando como lo tengo arriba.

+1

¿Uso "MySQL de línea de comandos de cliente"? Nunca he usado MySQL antes. –

+0

No estoy seguro de cuántas bases de datos contiene. Supongo que uno. –

+1

Abra el archivo de volcado en un editor de texto, es bastante fácil de seleccionar, si hay alguna instrucción de "uso", entonces es de varias bases de datos, si no hay ninguna, tendrá que agregar una en la parte superior antes que usted puede ejecutar ese comando. –

27

Cuando hacemos un archivo de volcado con mysqldump, lo que contiene es un gran script SQL para recrear los contenidos del databse. Así que recuperarlos utilizando puesta en marcha de cliente de línea de comandos de MySQL:

mysql -uroot -p 

(donde root es nuestro nombre de usuario de administración para MySQL), y una vez conectado a la base de datos que necesitamos comandos para crear la base de datos y leer el archivo en ello:

create database new_db; 
use new_db; 
\. dumpfile.sql 

Los detalles variarán según las opciones que se utilizaron al crear el archivo de volcado.

+1

+1 Como esta es la forma más fácil de hacerlo en Windows, donde 'mysql.El binario exe no está en la RUTA de forma predeterminada, pero la línea de comandos de MySQL es fácil de ejecutar desde el menú Inicio. – Phrogz

146

sólo hay que ejecutar este:

mysql -p -u[user] [database] < db_backup.dump

Si el volcado contiene varias bases de datos que debe omitir el nombre de la base de datos:

mysql -p -u[user] < db_backup.dump

Para ejecutar estos comandos, abrir un símbolo del sistema (en Windows) y cd en el directorio donde está el ejecutable mysql.exe (puede que tenga que buscarlo un poco, dependerá de cómo instaló mysql, es decir, independiente o como parte de un paquete como WAMP). Una vez que esté en ese directorio, debería poder simplemente escribir el comando.

11

Yo tengo que trabajar siguiendo estos pasos & hellip;

administrador
  1. abierto MySQL y conectar con el servidor

  2. Seleccione "Catálogos" de la izquierda

  3. clic derecho en el cuadro inferior izquierda y seleccione "Crear nuevo esquema"

    MySQL Administrator http://img204.imageshack.us/img204/7528/adminsx9.th.gifenlarge image

  4. un nombre al nuevo esquema (ejemplo: "DBN")

    MySQL New Schema http://img262.imageshack.us/img262/4374/newwa4.th.gifenlarge image

  5. del sistema abierto de comandos de Windows (cmd)

    Windows Command Prompt http://img206.imageshack.us/img206/941/startef7.th.gifenlarge image

  6. Sitúese en el directorio de instalación de MySQL

  7. Ejecutar comando:

    mysql -u root -p dbn < C:\dbn_20080912.dump 
    

    y hellip; donde "raíz" es el nombre del usuario, "DBN" es el nombre de base de datos, y "C: \ dbn_20080912.dump" es la ruta/nombre de archivo del archivo mysqldump .dump

    MySQL dump restore command line http://img388.imageshack.us/img388/2489/cmdjx0.th.gifenlarge image

  8. disfrutar!

0

También puede usar el menú restaurar en el Administrador de MySQL. Solo tiene que abrir el archivo de respaldo y luego hacer clic en el botón restaurar.

546

Si la base de datos que desea restaurar no existe ya, es necesario crear primero.

En la línea de comandos, si se encuentra en el mismo directorio que contiene el archivo descargado, utiliza estos comandos (con sustituciones apropiadas):

C:\> mysql -u root -p 

mysql> create database mydb; 
mysql> use mydb; 
mysql> source db_backup.dump; 
+32

personalmente me gusta este método. muestra el progreso del volcado y también exactamente cuánto tiempo está tomando el sql diferente. – ToughPal

+24

Esto debe marcarse como respuesta correcta. –

+5

Esta es realmente la manera correcta de hacerlo, cuando está restaurando a un db limpio. – dmp

3

No se puede utilizar el menú Restaurar en MySQL administrador si la copia de seguridad/volcado no se creó a partir de ahí. Vale la pena intentarlo. Si opta por "ignorar errores" con la casilla de verificación para que, dirá que ha completado con éxito, a pesar de que sale claramente con sólo una fracción de las filas importadas ... esto es con un vertedero, que conste.

6

Si desea ver el progreso del vertedero intente esto:

pv -i 1 -p -t -e/ruta/a/sql/volcado | mysql -u USUARIO -p DATABASE_NAME

Usted por supuesto necesidad 'pv' instalado. Este comando solo funciona en * nix.

9

Usted puede intentar SQLyog herramienta 'secuencia de comandos SQL Ejecutar' para importar archivos SQL/volcado.

enter image description here

+0

¿cómo puedo hacer esto en MySQL Workbench? –

+0

Me pregunto qué contiene tu base de datos actual? lol – kornesh

+0

¿Por sakila? –

4

El uso de un archivo de volcado de 200 MB creada en Linux para restaurar en Windows w/MySQL 5.5, que tenía más éxito con el enfoque

source file.sql 

desde la línea de MySQL que con el

mysql < file.sql 

enfoque en la línea de comandos, que causó algunos error 2006 "servidor se ha ido" (en Windows)

Curiosamente, el servicio creado durante la instalación (mysql) se refiere a un archivo my.ini que no existía. Copié el archivo de ejemplo "grande" en my.ini que ya había modificado con los aumentos recomendados.

Mis valores son

[mysqld] 
max_allowed_packet = 64M 
interactive_timeout = 250 
wait_timeout = 250 
49
mysql -u username -p -h localhost DATA-BASE-NAME < data.sql 

mirada here - step 3: de esta manera usted no necesita la instrucción USE

7
./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file 
+0

Esto es lo mismo que un par de las otras respuestas, y esta es una pregunta de ocho años. – miken32

+1

Aunque la respuesta seleccionada es muy buena, esta respuesta fue en realidad más útil para mí. Mi archivo de base de datos era ENORME, y abrirlo en Notepad ++ era una pesadilla, simplemente no podía manejar el tamaño y no me permitía agregar el nombre de la base de datos en la parte superior del archivo sql. En ese caso, ser capaz de especificar el nombre db desde la línea de comando es realmente más útil. – Najeeb

6

Como un ejemplo específico de una respuesta anterior:

que necesitaba restaurar una copia de seguridad para poder importarla/migrarla a SQL Server. Instalé MySql solamente, pero no lo registré como un servicio ni lo agregué a mi ruta, ya que no tengo la necesidad de mantenerlo en ejecución.

Utilicé Windows Explorer para poner mi archivo de volcado en C: \ code \ dump.sql. Luego abrió MySql desde el elemento del menú de inicio. Creó la base de datos, y luego corrió el comando de origen con la ruta completa de esta manera:

mysql> create database temp 
mysql> use temp 
mysql> source c:\code\dump.sql 
0

comando de una sola línea para restaurar el SQL generado a partir mysqldump

mysql -u <username> -p<password> -e "source <path to sql file>;" 
+0

p. Ej. 'mysql -u root -p12345678 -e" fuente /tmp/backup.sql; "' –

Cuestiones relacionadas