Conectar una base de datos MySQL con LibreOffice

El objetivo es poder usar información que ya tengo almacenada en una base de datos MySQL (supongo que también es posible con MariaDB) y utilizar esa información en los programas de LibreOffice.

De todos los programas que aparecen en LibreOffice el que parece más abandonado es Base. Actualmente estoy haciendo algunos experimentos con LibreOffice y MySQL, pero no me están resultando tan sencillo como esperaba.

Lo primero: Instalar el conector JDBC.

Hasta donde tengo entendido, para establecer una conexión con una base de datos en LibreOffice hay dos caminos. Usar un ODBC que es muy común en la plataforma de windows o con un JDBC (Java Database Connectivity). Como lo quiero hacer mi trabajo en Linux elegí esta última.

JDBC descarga
Descargué el que dice: Plataforma independiente.

Sigan el siguiente enlace para descargar el Connector. Elegí el que dice Plataforma Independiente. El formato no importa mucho, a fin de cuentas el archivo lo van a descomprimir y Linux soporta fácilmente archivos tar.gz como archivos zip.

Una vez descargado, hay que descomprimir los archivos en la carpeta que ustedes prefieran (tomen nota). Con eso terminamos este primer paso.

Agregar la clase del conector.

Para agregar la clase del conector (sea lo que sea que esto signifique) hay que abrir cualquier aplicación de LibreOffice, por ejemplo Calc.

Luego ir al menú HerramientasOpciones…  después en donde dice Avanzado , presionar el botón que dice: Ruta de clase…

agregar clase a libreoffice
Agregando la clase del conector.

Y agregar el archivo mysql-connector-java-5.1.44-bin.jar que descomprimimos en el paso anterior.

Lograr esto me llevó un buen rato. He tenido que leer muchos sitios, algunas cosas no me funcionaban, otras si. El proceso no es muy intuitivo que digamos. Eso de tener que lidiar con Java (que es de todos conocido que no soy fan) me resulta tortuoso, pero en fin, es lo que hay.

Pues una vez agregada la clase del conector podemos configurar una conexión a una base de datos MySQL con Base y por lo tanto con LibreOffice.

Agregar una base de datos MySQL a BASE.

Todo lo anterior ha sido para llegar a este paso. Abrimos BASE de LibreOffice y verán una pantalla como esta:

Conectar a una base de datos existente MySQL en LibreOffice
Conectar a una base de datos MySQL

A partir de este punto hay que seguir las indicaciones del asistente: Conectar mediante JDBC ¿recuerdan?.

Conectar mediante JDBC
Conectar mediante JDBC

Te preguntará cosas que un administrador debe saber, como el servidor, el nombre de la base de datos y sus credenciales (nombre de usuario y contraseña).

Prueba de conexión
Prueba de conexión

Un pequeño detalle pero importante, si Registran esta información de conexión estará disponible en cualquier aplicación de LibreOffice ¡Interesante!.

Registrar la base de datos en LibreOffice
Sí, registrar la base de datos.

Si todo salio bien verán que ahora pueden ver las tablas y hacer consultas con los datos.

Ejecutando una consulta sql
Ejecutando una consulta SQL.

En otro artículo les voy a explicar cómo aprovechar esta información en Calc o en cualquier otro documento de LibreOffice.

¡Hasta la próxima!

P.D. Para ilustrar este artículo usé la base de datos world que está disponible en la documentación de MySQL y que sirve precisamente como datos de ejemplo para practicar.

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. 🙂