Amarok con MySQL

Amarok es un programa excelente, es sin duda uno de los más populares reproductores entre la comunidad de linuxeros y es de esas pocas aplicaciones que los usuarios de Windows desean sin poder tenerla.

Aquellos que como yo usen Amarok para administrar y reproducir su colección de mp3, se habrán dado cuenta de que corre bastante lento con una colección de tamaño muy grande, incluso hay quien dice que con unas 3,000 pistas Amarok ya empieza a tener problemas. Esto debido a que por omisión utiliza una base de datos SQLite para manejar los datos, y cuando estos son muchos el programa empieza a volverse lento.

En mi caso Amarok tardaba unos dos minutos en iniciar y en general todo el sistema se volvía un poco lento, con mi colección de unos 77 GB.

Una solución para a esto es hacer que Amarok use MySQL para administrar la colección de música, para ello lo primero que hay que hacer es tener instalado Amarok y MySQL, en el caso de una instalación completa de Slackware 14 ambos vienen instalados. Yo estoy utilizando Slackware 14 con KDE 4.9.2, Amarok 2.6 y MySQL 5.5.27.

Luego hay que ejecutar MySQL en el caso de que no se esté ejecutando ya, para ello primero se le dan los permisos de ejecución y luego se inicia:

# chmod +x /etc/rc.d/rc.mysqld
# /etc/rc.d/rc.mysqld start

Luego entrar en el prompt de MySQL:

# mysql -u root -p

En mi caso salió el siguiente error:

error: 'Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/run/mysql/mysql.sock' exists!

Para solucionarlo utilicé el script que viene el el sistema para instalar base de datos en el directorio /usr/bin:

# /usr/bin/mysql_install_db

Hay que darle los permisos correctos a los directorios que utiliza, haciendo que el directorio pertenezca al grupo y usuaio mysql, lo hice con los dos directorios siguientes solo para estar seguros :).

# chown -R mysql:mysql /var/run/mysql/
# chown -R mysql:mysql /var/lib/mysql/

Iniciando MySQL:

# mysqld_safe &

Ahora hay que crear una contraseña para el usuario root:

# mysqladmin -u root password 'aquí_la_contraseña'

La contraseña debe ir entre comillas sencillas. Ahora si iniciar y si todo va bien, aparecerá un mensaje de bienvenida:

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.27-log MySQL Community Server (GPL)

Ejecutar los comandos siguientes, el primero es para crear una base de datos que se llame amarokdb, luego especificar que se usará mysql, crear un usuario llamado amarokuser asignarle una contraseña y los permisos necesarios en el servidor local. Finalmente salir y el programa tan educadamente se despedirá.

mysql> CREATE DATABASE amarokdb;
mysql> USE mysql;
mysql> GRANT ALL ON amarokdb.* TO amarokuser@localhost IDENTIFIED BY 'contraseña_de_amarokuser';
mysql> FLUSH PRIVILEGES;
mysql> quit
Bye

Y para segurarnos de que ya está el archivo que faltaba…

# ls -l /var/run/mysql/

Aparecerá:

srwxrwxrwx 1 mysql mysql 0 oct 28 00:36 mysql.sock

Finalmente hay que abrir Amarok e ir a Preferencias > Configurar Amarok > Base de datos y marcar la casilla que dice Utilizar base de datos MySQL externa. Con los comandos del promt de MySQL la configuración de Amarok coincide, solo hay que ponerle la contraseña que utilizamos para amarok user y listo, reiniciar Amarok para que los cambios tengan efecto.

Amarok con MySQL

Como resultado tenemos que Amarok sigue tardando un poco al iniciar aunque ya es menos que antes, y hay un a considerable mejoría en la estabilidad del programa una vez iniciado todo fluye como el agua y los cambios hechos en el directorio de la colección se reconocen al instante.

NOTA: Si cada vez que se inicia Amarok toda la lista de canciones vuelve a cargarse, hay que asegurarse de que el directorio de Colección esté marcado ;).

Saludos.

Fuentes:

Mini Turoriales GNU
Viva o Linux

Deja un comentario