¿Cómo restauro un archivo de volcado de mysqldump?

544

Me dieron un archivo de base de datos MySQL que necesito restaurar como base de datos en mi máquina con Windows Server 2008.

Intenté usar MySQL Administrator, pero recibí el siguiente error:

El archivo seleccionado fue generado por mysqldump y esta aplicación no puede restaurarlo.

¿Cómo hago para que esto funcione?

Zack Peterson
fuente

Respuestas:

587

Debería ser tan simple como ejecutar esto:

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

Si el volcado es de una única base de datos, es posible que deba agregar una línea en la parte superior del archivo:

USE <database-name-here>;

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

Para ejecutar estos comandos, abra un símbolo del sistema (en Windows) y cden el directorio donde está el mysql.exeejecutable (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 como lo tengo arriba.

Justin Bennett
fuente
1
¿Utilizo "MySQL Command Line Client"? Nunca he usado MySQL antes.
Zack Peterson el
1
Abra el archivo de volcado en un editor de texto, es bastante fácil de leer, si hay declaraciones de "uso", entonces es de múltiples bases de datos, si no hay ninguna, tendrá que agregar una en la parte superior antes de poder ejecuta ese comando.
Justin Bennett
66
Por supuesto, la base de datos que coloque en la instrucción "usar" deberá existir primero.
Justin Bennett
113
ver respuesta vogs. La sintaxis mysql -u<user> -p mydatabasename < db_backup.dump no es necesaria para una USEdeclaración al comienzo del archivo
Toskan
1
La sugerencia de "Abrir el archivo de volcado en un editor de texto" parece extraña. Eso podría funcionar con bases de datos pequeñas o un editor de texto almacenado como EditPad, pero con todo lo demás se ahogará. Sería bueno si no tuvieras que dar este paso.
mikato
719

Si la base de datos que desea restaurar aún no existe, primero debe crearla.

En la línea de comandos, si está en el mismo directorio que contiene el archivo volcado, use estos comandos (con las sustituciones apropiadas):

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;
Dónal
fuente
52
Personalmente me gusta este método. muestra el progreso del volcado y también exactamente cuánto tiempo tarda diferentes sql.
ToughPal
11
@Phrogz En realidad, puede proporcionar una contraseña en la línea de comando mysql -u root -psecret sin el espacio, pero tiene la desventaja de que su contraseña aparece en texto sin formato en las listas de procesos y archivos de registro. Es mejor, como sugiere, usar vacío -py escribirlo en el indicador.
Joe Holloway el
Este método tiene la ventaja de permitir que las variables basadas en sesión (por ejemplo, FOREIGN_KEY_CHECKS) se configuren sin tener que editar el archivo de volcado
Chris Cooper
Esto está muy bien cuando se hace este tipo de cosas a mano, pero no funciona desde un script bash.
chacham15
1
Un inconveniente: no puede cargar el volcado comprimido (por ejemplo, generado con mysqldump db | gzip -9 > dumpfile.sql.gz)
Marinos An
246

Simplemente necesita ejecutar esto:

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

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

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

Para ejecutar estos comandos, abra un símbolo del sistema (en Windows) y cden el directorio donde está el mysql.exeejecutable (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.

vog
fuente
60
mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

mira aquí - paso 3 : de esta manera no necesitas la declaración USE

womd
fuente
33

Cuando hacemos un archivo de volcado con mysqldump, lo que contiene es un gran script SQL para recrear el contenido de la base de datos. Así que lo restauramos al iniciar el cliente de línea de comandos de MySQL:

mysql -uroot -p 

(donde rootestá nuestro nombre de usuario administrador para MySQL), y una vez conectado a la base de datos necesitamos comandos para crear la base de datos y leer el archivo en ella:

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

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

pdc
fuente
19

Ejecute el comando para ingresar a la base de datos

 # mysql -u root -p 

Ingrese la contraseña para el usuario y luego cree una nueva base de datos

mysql> create database MynewDB;
mysql> exit

Y hacer la salida. Afectar eso. Ejecutar este comando

# mysql -u root -p  MynewDB < MynewDB.sql

Luego ingrese el db y escriba

mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

Eso es ........ Su volcado se restaurará de una base de datos a otra base de datos

O bien, hay una forma alternativa para la restauración de volcado

# mysql -u root -p 

Luego ingrese el db y escriba

mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit
Javeed Shakeel
fuente
14

Lo puse a trabajar siguiendo estos pasos ...

  1. Abra el Administrador de MySQL y conéctese al servidor

  2. Seleccione "Catálogos" a la izquierda

  3. Haga clic derecho en el cuadro inferior izquierdo y elija "Crear nuevo esquema"

    MySQL Administrator http://img204.imageshack.us/img204/7528/adminsx9.th.gif ampliar imagen

  4. Nombra el nuevo esquema (ejemplo: "dbn")

    MySQL New Schema http://img262.imageshack.us/img262/4374/newwa4.th.gif ampliar imagen

  5. Abra el símbolo del sistema de Windows (cmd)

    Símbolo del sistema de Windows http://img206.imageshack.us/img206/941/startef7.th.gif ampliar imagen

  6. Cambiar el directorio a la carpeta de instalación de MySQL

  7. Ejecutar comando:

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

    ... donde "root" es el nombre del usuario, "dbn" es el nombre de la base de datos y "C: \ dbn_20080912.dump" es la ruta / nombre de archivo del archivo mysqldump .dump

    Línea de comando de restauración de volcado de MySQL http://img388.imageshack.us/img388/2489/cmdjx0.th.gif ampliar imagen

  8. ¡Disfrutar!

Zack Peterson
fuente
12

Puede probar la herramienta SQLyog 'Ejecutar script SQL' para importar archivos sql / dump.

ingrese la descripción de la imagen aquí

Ashwin A
fuente
11

Si desea ver el progreso del volcado, intente esto:

pv -i 1 -p -t -e /path/to/sql/dump | mysql -u USERNAME -p DATABASE_NAME

Por supuesto, necesitará 'pv' instalado. Este comando solo funciona en * nix.

Hengjie
fuente
10

Como un ejemplo específico de una respuesta anterior:

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 funcionamiento.

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, luego ejecutó el comando de origen con la ruta completa de la siguiente manera:

mysql> create database temp
mysql> use temp
mysql> source c:\code\dump.sql
Miguel
fuente
9

Utilizando un archivo de volcado de 200 MB creado en Linux para restaurar en Windows con mysql 5.5, tuve más éxito con el

source file.sql

enfoque desde el indicador de mysql que con el

mysql  < file.sql

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

Extrañamente, 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
Jerome_B
fuente
9
./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file
vkrishna17
fuente
Esto es lo mismo que algunas de las otras respuestas, y esta es una pregunta de ocho años.
miken32
2
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 ++ fue 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 cuyo caso, poder especificar el nombre de la base de datos desde la línea de comandos es realmente más útil.
Najeeb
El mysqlcomando no acepta espacios entre las opciones y sus argumentos. Debe ser así -u<username>, y la contraseña no debe proporcionarse en la línea de comando.
Roland Illig
4

No puede usar el menú Restaurar en MySQL Admin si la copia de seguridad / volcado no se creó desde allí. Sin embargo, vale la pena intentarlo. Si elige "ignorar errores" con la casilla de verificación para eso, dirá que se completó con éxito, aunque claramente sale con solo una fracción de las filas importadas ... esto es con un volcado, recuerde.


fuente
2

Comando de una línea para restaurar el SQL generado desde mysqldump

mysql -u <username> -p<password> -e "source <path to sql file>;"
Jossef Harush
fuente
1
por ejemplomysql -u root -p12345678 -e "source /tmp/backup.sql;"
Jossef Harush
No use la contraseña de esta manera, solo use -p y la línea de comando le solicitará una solicitud de contraseña segura después de presionar enter.
user2473015
Cuando puede permitirse un aviso interactivo, está en lo correcto. Cuando no pueda (por ejemplo, secuencia de comandos desatendida) probablemente lo usará en línea
Jossef Harush
1

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

user26087
fuente
0

Cómo restaurar la base de datos MySQL con MySQLWorkbench

Puede ejecutar la caída y crear comandos en una pestaña de consulta.

Suelte el esquema si actualmente existe

DROP DATABASE `your_db_name`;

Crear un nuevo esquema

CREATE SCHEMA `your_db_name`;

Abra su archivo de volcado

MySQLWorkbench abrir archivo sql

  1. Haga clic en el icono Abrir una secuencia de comandos SQL en una nueva pestaña de consulta y elija su archivo de volcado db.
  2. Luego haga clic en Ejecutar script SQL ...
  3. Luego le permitirá obtener una vista previa de las primeras líneas del script de volcado de SQL.
  4. Luego elegirá el Nombre de esquema predeterminado
  5. A continuación, elija el conjunto de caracteres predeterminado utf8 normalmente es una apuesta segura, pero puede discernirlo mirando las líneas de vista previa de algo como character_set .
  6. Haga clic en Ejecutar
  7. ¡Sea paciente con los scripts de restauración de DB grandes y observe cómo se derrite el espacio de su unidad! 🎉
CTS_AE
fuente
0

Suponiendo que ya tiene la base de datos en blanco creada, también puede restaurar una base de datos desde la línea de comando de esta manera:

sudo mysql databasename < backup.sql
Suragch
fuente