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