sql

 El otro día necesitaba realizar una copia de unsa base de datos por el simple echo de tener que poner la base de datos de 'develop'  a producción. Por SQL no encontré nada, pero encontré este comando que hacia exactamente lo que queria, realizar una copia de la base de datos.

 

 

 

 

 

Lo primero que se debe hacer es entrar en mysql y crear la base de datos nueva en caso de no tenerla 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.

Comando con copiado solo de estructura:

mysqldump -u usuario -pcontraseña -d base_de_datos_original | mysql -u usuario -pcontraseña -D nueva_base_de_datos

 

Comando con copiado de datos y estructura:

mysqldump -u usuario -pcontraseña base_de_datos_original | mysql -u usuario -pcontraseña -D nueva_base_de_datos

 

Es bastante sencillo, hace un dump de la base de datos a copiar y luego realiza una tuberia hacia una consola de mysql creando la base de datos con el nombre que queramos y los datos de la base de datos original.

Es importante poner la contraseña en el comando 'mysqldump' ya que no podrás ponerla manualmente. En el otro comando si puedes ponerla manualmente. Si te da cosa ponerlo en el comando porque podrá salir cuando listes los procesos no te preocupes porque bash cambiará por asteriscos los carácteres de tu contraseña.

 

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

 

 

 

  • No se han encontrado comentarios

Deja tus comentarios

Enviar un comentario como invitado

0 / 300 Restricción de Carateres
El texto debe estar entre 2-300 caracteres
Sus comentarios están sujetos a moderación por un administrador.