Copia de mysql de box en local
Publicado en 26 octubre, 2017
Periódicamente hacemos un backup de las tablas de MySQL de producción (actualmente la 100) para posteriormente instanciar un MySQL en el puerto 3307 de vhome para acceder a datos de producción en local.
En hpx1 hay un script en /usr/local/bin/activar_mysql.sh que:
- Reinicia vhome (necesario para tener los cambios)
- Ejecuta en vhome el script: new_instance_mysql.sh.
Se inicia la segunda BD en «screen» para que quede en segundo plano. De otra manera no se conseguía desde el host que se mantuviera activa.
new_instance_mysql.sh
#!/bin/bash
YELLOW='\033[1;33m'
NC='\033[0m'
port=3307
echo -e "${YELLOW}Permisos...${NC}"
MYSQLBOX=/home/mysqlbox-data
mkdir -p $MYSQLBOX
chown -R mysql:mysql $MYSQLBOX/
mkdir -p /var/log/mysqlbox
chown -R mysql:mysql /var/log/mysqlbox
cp -R /etc/mysql/ /etc/mysqlbox
echo -e "${YELLOW}Cambio cadenas...${NC}"
cd /etc/mysqlbox/
sed -i "s/3306/$port/g" my.cnf
sed -i "s/mysqld.sock/mysqldbox.sock/g" my.cnf
sed -i "s/mysqld.pid/mysqldbox.pid/g" my.cnf
sed -i "s/var\/log\/mysql/var\/log\/mysqlbox/g" my.cnf
sed -i "s/home\/mysql-data/home\/mysqlbox-data/g" my.cnf
echo -e "${YELLOW}Durmiendo 5s...${NC}"
sleep 5
echo -e "${YELLOW}Inicializando MySQL...${NC}"
mysql_install_db --user=mysql --datadir=$MYSQLBOX/
SCREEN='new_instance_mysql'
screen -dmS $SCREEN sh; screen -S $SCREEN -X stuff "mysqld_safe --defaults-file=/etc/mysqlbox/my.cnf\n"
echo -e "${YELLOW}MySQL cargado...${NC}"

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.