Script para respaldar todas las bases de datos de un servidor MySQL

Hoy en la mañana estaba leyendo este artículo llamado Script para backups automáticos de tu servidor lo vi y me pareció una buena idea hacer uno propio para respaldar todas las bases de datos que tengo en mi servidor MySQL.

Tomé prestadas algunas ideas del script que muestran en DesdeLinux.net y otras del sitio Tail -f Backup de todas las bases de datos MySQL en archivos separados.

El script de DesdeLinux es muy completo, hacen un respaldo de varios archivos, un vaciado de las bases de datos que consideran importantes y hasta envía un correo electrónico a los administradores con el resultado del respaldo. En lo personal a mi me gusta copiar archivos utilizando el comando rsync, pero esa es otra historia.

Al principio intenté hacer un mysqldump de todas las bases de datos en un solo archivo, pero el resultado fue un mega archivo de 27 MB que era muy difícil de abrir para gedit (o cualquier otro editor de texto). Si solo necesito restaurar una base de datos en lugar de todas la tarea se puede complicar un poco.

Por eso que decidí generar un solo archivo para cada base de datos del servidor MySQL. Ahí es donde entra en acción el script de Tail que explica muy bien como generar un archivo independiente por cada base de datos.

El resultado es un archivo por cada base de datos que incluye en el nombre del archivo la fecha en la que fue realizado el respaldo.

El script esta diseñado para ejecutarse en un equipo diferente al que ejecuta el servidor de base de datos, aunque supongo que si le ponen localhost en la variable IP_SERVIDOR_MYSQL también puede funcionar.

Como un plus, el script realiza una optimización y reparación de todas las bases de datos del servidor antes de hacer el vaciado de las bases de datos.

Ajustando los parámetros

Para utilizarlo es necesario descargar el archivo, abrirlo y modificar los parámetros

  • WORK_DIR Es la ruta donde quieres que se guarden los archivos.
  • IP_SERVIDOR_MYSQL Es la dirección ip del servidor, también podría funcionar un nombre de dominio o si el servidor es la misma maquina en la que se ejecuta el script localhost sería lo correcto.
  • USUARIO Un usuario con los permisos de acceso necesarios, root funciona la mayoría de las veces.
  • DB_PASS La contraseña del usuario 🙂

Para ejecutar el script es necesario darle permisos de ejecución con:

chmod +x respaldo_mysql.sh

Y suerte !!!

El script funciona muy bien en mi equipo y espero que en el de ustedes también. Si tienen alguna duda favor de poner un comentario.

Descargar respaldo_mysql.sh

Actualización. Este script dejó de funcionar por un error al intentar ejecutar varias tareas de manera simultánea, pueden ver la versión más reciente en: Script para respaldar bases de datos MySQL versión 2.

Cambiar las imágenes a otro dominio con SQL en WordPress

Ahora que cambié de **blogsome** a **Wordpress** muchas de las imágenes que estaban hospedadas en ese sitio quedaron mal referenciadas y por lo tanto no se muestran. Aprovechando la duda que dejo [Warren Keffer](http://linuxmanr4.com/2011/11/26/migrando-de-blogsome-a-wordpress/#comment-27023) en uno de los comentarios, esta es la forma de migrar las imágenes mediante SQL.

No es muy complicado hacer el cambio, lo único que hay que hacer es una búsqueda sustitución con la función **REPLACE** de MySQL.

Primero es necesarios copiar todas las imágenes a su nuevo dominio, en mi caso hice una carpeta dentro de mi instalación de wordpress.

Busqué una imagen errónea y vi como estaba estructurado el enlace que era muy similar a este:

src=’/images/

El objetivo es sustituirlo por este otro:

src=’http://linuxmanr4.com/wp-content/uploads/images/

La instrucción SQL quedaría más o menos así:

UPDATE wp_posts SET post_content = REPLACE(post_content, "src=’/images/", "src=’http://linuxmanr4.com/wp-content/uploads/images/");

Para ejecutar esta instrucción utilicé el servicio de [phpMyAdmin](http://www.phpmyadmin.net/home_page/index.php “Administrador de Mysql escrito en PHP”) que ofrece mi servicio de hosting.

Ejecuntando la instrucción SQL

Una vez que ejecuté la consulta la gran mayoría de mis imágenes estrenaron dominio nuevo y se muestran correctamente.

MySQL Tuner, Un asesor en el rendimiento de servidores MySQL

Ayer me puse a moverle un poco a MySQL Tuner, este pequeño script hecho en Perl revisa la configuración de tu servidor MySQL para mejorar el rendimiento y la estabilidad.

Para poder ejecutarlo es necesario tener instalado Perl (algo que es muy común) y el programa mysql-admin que se instala fácilmente con un:

sudo apt-get install mysql-client-5.0

MySQL Tuner: Parametros del script

Lo que sigue es ejecutar el script, como si servidor mysql esta en otra computadora hay que agregar algunos parámetros, como la ubicación y cantidades de memoria disponible.

./mysqltuner.pl --host ip_del_servidor_mysql --forcemem 512 --forceswap 768

Rápidamente hace un análisis y emite sus recomendaciones.

Revisando las recomendaciones de MySQL Tuner

Ya hice varios ajustes siguiendo sus recomendaciones, básicamente aumentando algunos valores por *default*. Ahorita estoy revisando el porque mis aplicaciones no cierran correctamente su conexión a la base de datos.