2010-12-10 13 views
12

Tengo dos servidores dedicados con acceso de administrador. Ambos están ejecutando Linux. Quiero importar la base de datos de Server1 a Server2. Ya he creado una base de datos vacía en Server2. Quiero saber el comando de Linux a través del cual puedo importar la base de datos directamente? ¿Hay tal característica? ¿Puedo usar mysqldump? Quiero evitar primero hacer una copia de seguridad de la base de datos en el servidor 1, luego mover ese archivo al servidor2 y luego importar ese archivo. ¿Se puede importar directamente usando algún comando?Importación de la base de datos MySQL de un servidor a otro

Gracias

+0

+1 Estoy buscando lo mismo –

Respuesta

13

Si desea evitar la creación de un archivo, transferirla, y lo carga, sólo puede mysqldump tubo en una cualquiera de MySQL se ejecuta en el otro servidor, o un mysql ssh en el otro servidor.

Usar mysql para conectarse a la caja de control remoto:

mysqldump --all-databases | mysql -h yourserver.com 

El uso de SSH para conectarse a otro servidor

mysqldump --all-databases | ssh [email protected] mysql 

Uso del mysqldump --all-bases de datos para transferir a todos ellos, o simplemente especificar nombres de bases de datos. Consulte mysqldump documentation para ver más opciones.

También puede utilizar la función "Replicación" de MySQL, aunque eso llevará un poco más de tiempo para la configuración, y es bastante complicado. Probablemente no valga la pena todo el tiempo y problemas solo por una sola migración.

+0

Gracias por la respuesta, pero estoy un poco confundido en cuanto a qué hacer. ¿Puedes por favor elaborar? Quiero decir, ¿debo ejecutar el primer comando en el Servidor1 y el segundo comando en el Servidor2 después de conectarme a través de SSH? – Ali

+1

Ali: puede ejecutar ambos comandos en el Servidor1. El primer comando abrirá una conexión mysql TO Server2 (ponga su nombre después de '-h'). El segundo comando abrirá una conexión ssh al Servidor2 mismo, y ejecutará la aplicación cliente 'mysql', usando la salida de' mysqldump' en el Servidor1 como la entrada para 'mysql' en el Servidor2. Por lo tanto, transferir la base de datos. – Konerak

1
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C [email protected] “mysql -uUSER -pPASS NEW_DB_NAME” 

Vuelca una base de datos MySQL a través de un túnel SSH comprimido y lo utiliza como entrada a MySQL

source

2

Pare mysqld en el primer servidor, copie el directorio de datos (generalmente/var/lib/mysql) del servidor 1 al servidor 2, inicie mysqld en el segundo servidor, y ahora será idéntico al primero.

No tiene que usar las herramientas de importación/exportación si puede detener el servidor mientras copia los archivos de datos. Especialmente si puede comprimir los archivos antes de copiarlos, esta será la forma más rápida.

+0

Esta solución es la mejor si tiene la misma versión. –

Cuestiones relacionadas