Como sabemos, el fantástico reproductor musical de KDE, Amarok, es también un gestor de colecciones de audio, para lo que hace uso de una base de datos embebida, que desde su versión 2 es MySQL (antes era SQLite).
No he tenido constancia de que el problema haya aparecido en otras distribuciones, pero en OpenSUSE se dio que tras diversas actualizaciones del servidor de bases de datos MySQL, cuando se abría Amarok aparecía una ventana alertando de que había un problema con el acceso a la base de datos de MySQL, y nos sugería resolverlo antes de continuar utilizando Amarok. El mensaje de error decía concretamente lo siguiente:
GREPME MySQLe query failed! (2000) on init
El
efecto inmediato que tenía este problema sobre Amarok es que
desaparecía toda la colección de música que tuviésemos almacenada
en la base de datos del reproductor.
Como
efectos secundarios se podía constatar que aunque se cerrara el
programa el proceso seguía estando activo, haciendo que KDE se
quedara momentáneamente en estado de "shock", por lo que
había que ir al gestor de procesos y matar el proceso de Amarok a la
fuerza.
Investigando
un poco comprobé que el paquete que al parecer originaba el
conflicto era libmysqld18, que contiene las librerías de
ejecución para las aplicaciones que hacen uso del servidor MySQL. El
problema con el acceso de Amarok a la base de datos de MySQL surgió
después de que el servidor de MySQL (incluyendo sus dependencias,
entre ellas libmysqld18) se actualizaran a una versión superior a la
5.5.16.
En la actual versión de OpenSUSE, la 12.1, he comprobado con éxito dos formas de resolver el problema. La primera y más sencilla era desactualizar el paquete libmysqld18 a la versión 5.5.16 (sin necesidad de desactualizar las demás dependencias), que se puede hacer fácilmente desde YaST.
La
segunda, un poco más compleja pero quizás más ortodoxa, es crear
manualmente la base de datos de Amarok en MySQL, y otorgarle a éste
plenos permisos sobre dicha base de datos.
¿Cómo
hacerlo? Muy sencillo siguiendo los pasos que se describen a
continuación:
- En primer lugar deberemos asegurarnos de tener instalados el servidor y el cliente MySQL, cuyos paquetes en los repositorios son mysql-community-server y mysql-community-server-client.
- Abrimos una sesión de consola y accedemos a MySQL con el usuario root (de MySQL, no del sistema):
$ mysql -h localhost -u root
- Creamos el usuario 'amarokuser' en la máquina 'localhost' (es decir, nuestra máquina local):
mysql> create user amarokuser@localhost identified by 'amarokpass';
donde 'amarokpass' sería la contraseña del usuario 'amarokuser' utilizada en este caso, pero podemos ponerle la que queramos.
- Creamos la base de datos 'amarokdb' y le damos al usuario 'amarokuser' todos los permisos sobre ella:
mysql> create database amarokdb;
mysql> grant all privileges on amarokdb.* to amarokuser identified by 'amarokpass';
- A continuación entramos a MySQL como el usuario amarokuser e intentamos acceder a la base de datos 'amarokdb' para verificar que no haya problemas de acceso:
$ mysql -h localhost -u amarokuser -p
mysql> use amarokdb;
Si no nos aparece ningún mensaje de error, significa que todo está correcto y podemos proseguir.
- Abrimos Amarok y nos vamos a Preferencias > Configurar Amarok... > Base de datos. Ahí seleccionamos la opción "Utilizar base de datos MySQL externa", y rellenamos los campos, que en nuestro caso deberían estar así:
Servidor: localhost
Puerto: 3306
Usuario: amarokuser
Contraseña: amarokpass
Base de datos: amarokdb

Una vez hecho esto y aplicados los cambios, reniciamos Amarok y veremos cómo nuestra biblioteca musical vuelve a aparecer y a ser completamente accesible.
No obstante, en el bug reportado al respecto en el Bugzilla de OpenSUSE hay quien asegura haber resuelto el problema simplemente desinstalando el paquete mysql-community-server, lo que hace que el gestor de paquetes se encargue automáticamente de seleccionar e instalar los paquetes correspondientes al servidor MariaDB (fork de MySQL) como sustituto de mysql-community-server (https://bugzilla.novell.com/show_bug.cgi?id=712749#c40).
También se lee que a partir de la versión 12.2 de OpenSUSE, que será presumiblemente lanzada el próximo mes, este problema estará completamente resuelto. Pero si por cualquier razón nos topásemos de nuevo con el problema, ya tenemos aquí las posibles soluciones.
No hay comentarios:
Publicar un comentario