MariaDB y Microsoft Access

El día de ayer anunciaron en los foros de Manjaro que iba a dejar de lado el soporte a los paquetes de MySQL en favor de MariaDB.

Desde hace varios años tengo unos desarrollos en Microsoft Access (por favor no me juzguen) y que utilizan una base de datos MySQL. Los sistemas funcionan muy bien y jamás he perdido un solo registro, pero la tendencia es clara, si por alguna razón me quedo sin MySQL, ¿Podría seguir trabajando con MariaDB?

Instalando MariaDB.

Instalación de MariaDB

Decidí hacer una pequeña prueba en una maquina virtual con windows. Instalé la versión 5.5 de MariaDB que según el sitio es la estable.

Un detalle que llamó mi atención, es que este paquete incluye el programa HeidiSQL que permite hacer todas las operaciones básicas en una base de datos. Con este programa le cargué una buena cantidad de datos de un respaldo que hice de la base de datos MySQL.

¿Y el ODBC Apá?

Para enlazar Access con MySQL utilizo un conector ODBC disponible para MySQL pero no existe un equivalente con MariaDB, al menos no al momento de escribir este artículo.

La combinación ODBC Connector MySQL 5.2.4 – MariaDB 5.5 funciona sin problemas y de manera transparente, al menos por el momento no noté ningún comportamiento extraño o mensaje de error, pero creo que este detalle es un punto débil. El motor de base de datos seguirá con su desarrollo, corrigiendo errores, mejorando el desempeño y probablemente el conector se quede un poco atrás.

¡Funciona!

Lo bueno es que en las pruebas preliminares que he realizado sustituir MySQL por MariaDB no causa mayor problema, la administración es muy similar y el conector ODBC funciona correctamente. De momento no voy a actualizar mis sistemas en producción siguiendo la filosofía de “Si no esta roto, no lo arregles” más bien tenía la curiosidad de saber si podía utilizar MariaDB en proyectos futuros.

Creo que la ruta que eligió Oracle para los principales programas de software libre que compró no le esta funcionando, Java, OpenOffice, MySQL, por mencionar solo algunos. Java con serios problemas de seguridad y los dos restantes ya tienen sendos forks que están superando a los productos originales. En el caso de OpenOffice esta LibreOffice que esta presente en la mayoría de las distribuciones Linux y MySQL se empieza a mover en ese sentido.

Enlaces

Unauthenticated user en MySQL

El problema.

Era una tarde tibia para estos días de invierno, tranquila a pesar de que se acerca el trabajo del fin de año. Me encontraba haciendo unas pruebas para un sistema nuevo que voy a implementar en enero cuando de repente el programa comienza a comportarse de una manera inusual al grado de hacerla totalmente inutilizable.

Después de recuperarme del pánico inicial ( y notar una cana más a mi cabellera ), me puse mi chaqueta cazadora y procedí a un safari en búsqueda del maldito bug en el sistema.

El rastreo

Era el momento de empezar a encontrar el culpable … pero ¿Por donde comenzar?, enseguida estableci mi perimetro de rastreo a dos posibilidades, el servidor o la computadora cliente.

Le dije a una compañera de trabajo que intentará abrir el sistema y también le tronó en el rostro como Judas en sábado de gloria. El programa y la computadora cliente quedaban descartados.

Ahora la pregunta es ¿Qué le esta pasando al servidor?

Los síntomas. Me di cuenta de que el servicio no estaba caído y se estaba ejecutando normalmente !!!, intenté reiniciarlo sin éxito.

No me quedó más remedio que reinstalar el servidor MySQL, aunque ya no tuve problemas para reiniciar el servicio, el problema seguía ahí, burlándose de mi, casi casi podía ver su rostro diciéndome lero leroooo…

Arranqué el MySQL Administrator y me pude dar cuenta de que tenía un extraño invitado …

Error MySQL unauthenticated user

También me pude dar cuenta de que el servicio no tronaba, pero que la autentificación del usuario se tardaba demasiado ( 15 seg. aproximadamente ) , poco tiempo después de autentificarme aparecía el usuario extraño. Una vez que lograba conectarme al servidor las consultas eran normales en su tiempo de respuesta así que el problema era la autentificación del usuario.

La búsqueda.

Llego la hora de preguntarle al oráculo — Googlecito .. Googlecito … ¿ Es común este errorcito ? — Fue entonces cuando me di cuenta de que no estaba solo.

Get connection very slowly ahí mencionan un error con el DNS, intenté el consejo que dan sin éxito.

Connection to SQL Server Database Using IP Address Is Unusually Slow , es más o menos el mismo consejo que el anterior pero me acercó un poco más a la captura.

La solución.

La respuesta inspiradora la encontré en MySQL Manual | 2.3.13 Testing The MySQL Installation en la que menciona:

“If mysqld is slow to respond to TCP/IP connections from client programs on Windows 9x/Me, there is probably a problem with your DNS. In this case, start mysqld with the –skip-name-resolve option and use only localhost and IP numbers in the Host column of the MySQL grant tables.”

No quería arrancar el demon con ese parámetro cada vez que reiniciara el servidor así que edite el archivo my.ini

Solución con skip-name-resolve

Y todo solucionado 😀

El misterio.

Lo interesante es ¿ Porque falló después de 3 semanas de estar ejecutándose sin problemas ?. Eso creo que el mundo nunca lo sabrá.