Script para respaldar bases de datos MySQL versión 2

servidor de base de datos

Hace tiempo hice un script para respaldar bases de datos MySQL, pero dejó de funcionar. Esta nueva versión arregla los problemas del anterior aunque en esencia hace las mismas funciones.

El script

El script anterior dejó de funcionar porque en una actualización del paquete mysql-clients no permitía la comprobación, reparación y optimización de las bases de datos en una sola línea. Así que para evitar este problema tuve que separar estas tareas.

Con este código primero revisamos y reparamos cualquier error que pudieran tener todas las tablas de nuestro servidor de trabajo

mysqlcheck -c -A --auto-repair -h $IP_SERVIDOR_MYSQL -u $USUARIO --password=$DB_PASS
Para luego optimizar las tablas
mysqlcheck -A -o -h $IP_SERVIDOR_MYSQL -u $USUARIO --password=$DB_PASS
Claro que ahora el script se tarda un poco más en ejecutar, pero yo no hice las reglas 🙂 .

Adicionalmente, le hice algunos ajustes para que el nombre de los archivos de volcado incluyera información como la fecha, hora, minutos y segundos.

Si quieren darle un vistazo al código completo verán que es muy simple de ajustar y lo pueden descargar aquí: MySQL Backup Script

Sólo tienen que teclear los valores adecuados para los parámetros WORK_DIR, IP_DEL_SERVIDOR_MYSQL, USUARIO CONTRASEÑA.

Y por su puesto, darle permisos de ejecución al script, Ej.

chmod +x mysql_backup.sh
Si tienen cualquier comentario al respecto se los agradeceré. Espero que les sea de utilidad.

Problema con el ODBC de MySQL en Windows 7 de 64 bits

Orígenes de datos ODBC

Tengo varios desarrollos en Access que utilizan como base de datos un servidor MySQL. Hace unos días mi maquina se fue al cielo de las computadoras y al dar de alta las configuraciones en mi nuevo equipo me encuentro con este problema.

Al instalar el ODBC.

Si instalo el ODBC Driver de MySQL (ahora desarrollado por Oracle) de 64 bits aparece de manera correcta en el panel de control y puedo dar de alta correctamente la configuración del enlace a la base de datos. Pero la aplicación no la reconoce y me da este error.

“La arquitectura del DSN no coincide entre el controlador y la aplicación”

Por lo tanto no la puedo utilizar.

Si instalo la versión de 32 bits del ODBC driver de MySQL no aparece en la lista de opciones MySQL para dar de alta un Origen de los datos

La solución.

La solución que me funcionó fue dejar la versión de 32 bits instalada y ejecutar como usuario administrador el programa de Orígenes de datos que se encuentra en:

Orígenes de datos ODBC MySQL
Orígenes de datos ODBC
C:\Windows\SysWOW64\odbcad32.exe
De esa manera puedo dar de alta mi DSN ya que si aparece en el listado y funciona perfectamente con mi aplicación. 🙂

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.