new_db_name name modify db_name cli mysql mysqldump

modify - rename database mysql workbench



mysql restaurar a base de datos diferente (4)

En Windows Xampp usé los siguientes comandos para lograr esto.

Exportar

mysqldump -u root -p mydb > mydb.sql

Importar

mysql -u root -p mynewdb < mydb.sql

Realizo una copia de seguridad de mi base de datos de producción con el siguiente comando:

mysqldump -u root --opt --skip-extended-insert --databases my_production_db

El archivo de volcado resultante tiene las siguientes líneas cerca de la parte superior:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `my_production_db` /*!40100 DEFAULT CHARACTER SET latin1 */; USE `my_production_db `;

Con el fin de restaurar la base de datos a un destino diferente, es decir. my_debvelopment_db Tengo que abrir el archivo de volcado y editar los bits donde se nombra la base de datos.

Entonces corro:

mysql -u root -p <password> < mydumpfile

No he descubierto otra forma de hacerlo.

A medida que la base de datos se hace más grande, esto se vuelve poco práctico.

¿Me estoy perdiendo de algo? ¿No puedo especificar de alguna manera dónde quiero restaurar la base de datos? ¿Necesitaría un comando de copia de seguridad diferente?


La respuesta de @minaz fue buena, pero quiero añadir un poco más.

El problema fue causado por la palabra clave --databases . Si omite la palabra clave, no contendrá ningún contenido de creación de base de datos.

Por lo tanto, --databases sin --databases clave --databases .

mysqldump -u username -p database_name > dump.sql

Y restaurarlo con el nombre de la base de datos de destino.

mysql -u username -p target_database_name < dump.sql

Además, hay varias maneras de hacer esto. Vea el problema similar here (dba.stackexchange).


Si --databases la opción --databases pero sigue especificando el nombre de la base de datos, NO obtendrá las declaraciones de creación de la base de datos. es decir:

mysqldump -u root --opt --skip-extended-insert my_production_db

En su máquina dev, simplemente cree cualquier base de datos que desee restaurar.


Si ya tiene su volcado, puede eliminar los comandos para crear y utilizar la base de datos. Simplemente quite la cuarta y la nueva quinta línea.

sed ''4d'' dump.sql | sed ''5d'' > dump-striped.sql