Copiar una base de datos a otra:
Lo primero que debemos de hacer es crear la nueva base de datos en el caso de que no este creada:
create database nueva_base_de_datos
Una vez creada tenemos dos opciones, o copiarla con los datos o solo con la estructura. Si queremos copiar la estructura de las tablas y los datos que contienen, al comando mysqldump le quitaremos la opción -d. Si queremos solo la estructura le añadimos la opción -d.
mysqldump -u usuario -pcontraseña -d base_de_datos_original | mysql -u usuario -pcontraseña -D nueva_base_de_datos
Comando de copiado de datos y estructura:
mysqldump -u usuario -pcontraseña base_de_datos_original | mysql -u usuario -pcontraseña -D nueva_base_de_datos
Si quisieramos hacer lo mismo, pero copiando la base de datos remotamente, es decir , en otro servidor y además no queremos o podemos configurar la 'bind address' para que mysql permita conexiones externas tenemos una opción, que es realizar un tunel ssh para pasar los datos de un msyql a otro.
mysqldump -u usuario -pcontraseña -d base_de_datos_original | ssh usuario@servidor_externo.com mysql -u usuario -pcontraseña -D nueva_base_de_datos
Con este comando pasa lo mismo que con el anterior, hayq ue poner las contraseñas en el mismo comando, y en el caso de la contraseña ssh se puede poner en el comando o manual. También se peude configurar las claves rsa.
Si eres un poco paranoico como yo y no quieres dejar tu contraseña en el bash history ejecuta este comando y limpiará tu historial de esa sesión.
history -c
Hola amigo Wintx, muy buena la explicación y muy útil, seguro le va a servir a muchas personas!!
Saludos hermano!! :) :)
https://www.youtube.com/watch?v=HRAVVE4F7pY&feature=youtu.be