una pasar otra migrar maquina guardar exportar duplicar datos copiar consola como clonar mysql database copy clone mysqldump

pasar - Clonación de una base de datos MySQL en la misma instancia de MySql



exportar base de datos mysql consola (14)

Usando las utilidades de MySQL

Las Utilidades MySQL contienen la bonita herramienta mysqldbcopy que copia un DB por defecto incluyendo todos los objetos relacionados ("tablas, vistas, disparadores, eventos, procedimientos, funciones y concesiones de nivel de base de datos") y datos de un servidor de bases de datos al mismo o al otro servidor de bases de datos Hay muchas opciones disponibles para personalizar lo que realmente se copia.

Entonces, para responder la pregunta del OP:

mysqldbcopy / --source=root:your_password@localhost / --destination=root:your_password@localhost / sitedb1:sitedb2

Me gustaría escribir un script que sitedb1 mi base de datos actual sitedb1 a sitedb2 en la misma instancia de base de datos mysql. Sé que puedo volcar el sitedb1 a un script sql:

mysqldump -u root -p sitedb1 >~/db_name.sql

y luego importarlo a sitedb2 . ¿Hay una manera más fácil, sin volcar la primera base de datos a un archivo sql?


Además de la respuesta de Greg.
la manera más fácil y rápida si el new_db_name aún no existe.

echo "create database new_db_name" | mysql -u <user> -p <pwd> mysqldump -u <user> -p <pwd> db_name | mysql -u <user> -p <pwd> new_db_name


Como dice el manual en Copia de bases de datos , puede canalizar el volcado directamente en el cliente mysql:

mysqldump db_name | mysql new_db_name

Si está utilizando MyISAM, puede copiar los archivos, pero yo no lo recomendaría. Es un poco dudoso.

Integrado de varias otras buenas respuestas

Ambos comandos mysqldump y mysql aceptan opciones para configurar detalles de conexión (y mucho más), como:

mysqldump -u <user name> --password=<pwd> <original db> | mysql -u <user name> -p <new db>

Además, si la nueva base de datos aún no existe, debe crearla de antemano (por ejemplo, con echo "create database new_db_name" | mysql -u <dbuser> -p ).


Es mejor usar el comando mysqldbcopy para copiar la base de datos de uno a otro servidor o el mismo servidor.

mysqldbcopy --source=root:root@localhost --destination=root:root@localhost database-name:database-name-clone

[MySQL]


Esta declaración se agregó en MySQL 5.1.7 pero se descubrió que era peligrosa y se eliminó en MySQL 5.1.23. Su objetivo era permitir la actualización de bases de datos pre-5.1 para utilizar la codificación implementada en 5.1 para mapear nombres de bases de datos a nombres de directorios de bases de datos. Sin embargo, el uso de esta declaración podría resultar en la pérdida de contenido de la base de datos, razón por la cual fue eliminada. No use RENAME DATABASE en versiones anteriores en las que esté presente.

Para realizar la tarea de actualizar los nombres de las bases de datos con la nueva codificación, utilice ALTER DATABASE db_name ACTUALIZAR NOMBRE DEL DIRECTORIO DE DATOS en su lugar: http://dev.mysql.com/doc/refman/5.1/en/alter-database.html


La mejor y más fácil manera es ingresar estos comandos en su terminal y establecer permisos para el usuario raíz. Funciona para mi..!

:~$> mysqldump -u root -p db1 > dump.sql :~$> mysqladmin -u root -p create db2 :~$> mysql -u root -p db2 < dump.sql


Necesita ejecutar el comando desde la terminal / símbolo del sistema.

mysqldump -u <user name> -p <pwd> <original db> | mysql -u <user name> <pwd> <new db>

por ejemplo: mysqldump -u root test_db1 | mysql -u root test_db2 mysqldump -u root test_db1 | mysql -u root test_db2

Esto copia test_db1 a test_db2 y otorga el acceso a ''root'' @ ''localhost''


No creo que haya un método para hacer esto. Cuando PHPMyAdmin hace esto, vuelca el DB y lo vuelve a insertar con el nuevo nombre.


Podrías usar (en pseudocódigo):

FOREACH tbl IN db_a: CREATE TABLE db_b.tbl LIKE db_a.tbl; INSERT INTO db_b.tbl SELECT * FROM db_a.tbl;

La razón por la que no estoy usando la sintaxis CREATE TABLE ... SELECT ... es para conservar los índices. Por supuesto esto solo copia tablas. Las vistas y los procedimientos no se copian, aunque se puede hacer de la misma manera.

Ver CREAR TABLA .


Primero crea la base de datos duplicada:

CREATE DATABASE duplicateddb;

Asegúrese de que los permisos, etc. estén todos en su lugar y:

mysqldump -u admin -p originaldb | mysql -u backup -p password duplicateddb;


Puedes hacer algo como lo siguiente:

mysqldump -u[username] -p[password] database_name_for_clone | mysql -u[username] -p[password] new_database_name


Una forma sencilla de hacerlo si instaló phpmyadmin :

Vaya a su base de datos, seleccione la pestaña "operación" y podrá ver el bloque "copiar base de datos a". Úselo y puede copiar la base de datos.


Use ''mysqldbcopy'' en la terminal. Este caso se menciona muy bien [MySQL] . Ejemplo: Inicie el comando cmd. Navegue a la carpeta bin de mySql Server. Activa la siguiente consulta:

C:/Program Files/MySQL/MySQL Server 5.7/bin>mysqldbcopy --source=root:root@localhost --destination=root:root@localhost master:master_clone

aquí estoy tratando de copiar mi ''master'' db a ''master_clone'' en localhost.


$ mysqladmin create DB_name -u DB_user --password=DB_pass && / mysqldump -u DB_user --password=DB_pass DB_name | mysql -u DB_user --password=DB_pass -h DB_host DB_name