Como volcar una base de datos mysql

Imagen de deathUser

Tema: 

Cuantas veces han tenido que volcar una base de datos mysql y han tenido que tipear muchos parámetros del mysqldump ??? está bien, tambien lo pueden hacer con phpMyAdmin, pero y si no tienes acceso más que a una pantalla negra de texto ...??? (OK puedes usar lynx :))

En todo caso, aquí les va un peque script que hace el trabajo sucio:


#!/bin/bash
PROGRAM="/usr/bin/mysqldump"
USER="root"
PASSWORD="password"
BASE=`echo -n "$1" | sed s/:.*//`
FLAG=`echo -n $1 | grep ':'`

if [ -z ${FLAG} ]; then
PUERTO=3306;
else
PUERTO=`echo -n "$1" | sed s/.*://`
fi

ARCHIVO=$2
if [ -z ${ARCHIVO} ]; then
flag_puerto=0;
flag_tabla=0;
flag_archivo=0;
else
flag_puerto=1;
puerto=$PUERTO;
archivo=$ARCHIVO;
flag_base=1;
flag_tabla=1;
flag_archivo=1;
fi

if [ -z ${BASE} ];
then
flag_base=0;
else
echo "Volcando Base de datos: $BASE";
base=$BASE;
fi

while [ "${flag_base}" == "0" ];
do
read -p "Ingrese el nombre de la base de datos: " -e base
if [ -z ${base} ];
then
echo "No se ha especificado la base de datos.";
else
flag_base=1;
fi
done

while [ "${flag_puerto}" == "0" ];
do
read -p "Ingrese el puerto de conexión ($PUERTO): " -e puerto
if [ -z ${puerto} ];
then
if [ -z ${PUERTO} ];
then
echo "No se ha especificado el puerto de conexión.";
else
puerto=$PUERTO;
flag_puerto=1;
fi
else
flag_puerto=1
fi
done
if [ "${flag_tabla}" == 0 ];
then
read -p "Ingrese el nombre de la tabla (en blanco para volcar todas las tablas): " -e tabla
else
tabla=""
fi
if [ "$flag_archivo" == 0 ];
then
read -p "Ingrese el archivo destino (en blanco a PANTALLA): " -e archivo
else
archivo=$ARCHIVO;
fi
if [ -z ${archivo} ];
then
${PROGRAM} --quote-names -P ${puerto} --add-drop-table -u ${USER} -p${PASSWORD} ${base} ${tabla}
else
${PROGRAM} --quote-names -P ${puerto} --add-drop-table -u ${USER} -p${PASSWORD} ${base} ${tabla} > ${archivo}
fi

Es script te pedirá la información de:
- Base de datos a volcar
- Puerto de Conexión
- Tablas a volcar
- Archivo destino

Aunque también puede ser usado de la siguiente manera, suponiendo que el script se llama volcar:


volcar base_de_datos:3306 base_de_datos.sql
o
volcar base_de_datos base_de_datos.sql

Que les aprobeche ...
;)

Comentarios

100pre se agradece

Imagen de iknaxio

100pre se agradece este tipo de colaboraciones.

Enhorabuena deathUser!!!

Hasta cuando seremos los pacíficos dueños de tanto absurdo.

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net