Instalación y configuración de Percona

21 Enero 2013 at 20:25 by Adrián Pérez

Percona MySQL ServerPercona es un conocido fork de MySQL que promete aumentar rendimiento y fiabilidad, además de añadir funcionalidades adicionales interesantísimas.

Tenemos varias opciones de instalación de Percona, según nuestras necesidades, pero yo he probado a instalar Percona Server, para montar replicación tipo Master-Slave. Para ello he usado un Centos 6.3 i386, como PC de tests, donde le he instalado un Percona Server 5.5. Dejaré Percona XtraDB-Cluster para otra ocasión.

Requisitos de Percona Server

Desde ya, recomendaría deshabilitar selinux (o configurarlo convenientemente) antes de iniciar este proceso. También deberemos asegurarnos de que la máquina pueda resolver su hostname, revisando el fichero de hosts.

Instalar Percona Server

Podemos instalar Percona desde sus repositorios (fuente). Para ello podremos seguir la documentación, primero creando manualmente el repositorio para Percona:

vi /etc/yum.repos.d/Percona.repo

En ese fichero, añadiremos lo siguiente:

[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1

Y posteriormente, descargaremos la key de percona, dejándola en /etc/pki/rpm-gpg:

cd /etc/pki/rpm-gpg
wget http://www.percona.com/downloads/RPM-GPG-KEY-percona

Con ésto, podremos verificar que tenemos habilitado el repositorio de Percona, mediante:

yum list | grep percona

NOTA: Si se prefiere, también se puede añadir el repo desde un rpm, de entre los que tenemos en la web oficial:

rpm -Uhv http://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.i386.rpm

Una vez tengamos el repositorio listo, instalaremos el paquete más actual de Percona-Server-server.

yum install Percona-Server-server-55.i686

Al finalizar la instalación, el mismo yum nos mostrará información importante sobre la misma, como por ejemplo si se han podido instalar las tablas de sistema o recomendaciones sobre los primeros pasos tras las instalación. Percona, al ser un fork de mysql, dejará los mismos scripts de inicio que deja MySQL, así que tendremos en el init.d el script "/etc/init.d/mysql" (atención "mysql", no "mysqld"). Podemos asegurarnos con:

[root@perconatest]# /etc/init.d/mysql status
ERROR! MySQL (Percona Server) is not running

Si queremos, podemos revisar qué ficheros nos va a instalar el paquete de Percona-Server, con la utilidad "repo-query" que viene con el paquete "yum-utils":

repoquery -lq Percona-Server-server-55

En cualquier caso, deberemos revisar que este proceso de inicio esté activado para ejecutarse durante el arranque. Podemos asegurarnos de configurarlo para el proceso de arranque, con:

chkconfig mysql on

Configuración de Percona Server

Cabe decir, que al parecer, Percona no genera el fichero /etc/my.cnf, así pues, deberemos crear nuestro propio fichero my.cnf. Merece la pena pegarle un vistazo al Configuration Wizard que tiene Percona. Se trata de un asistente online, que te pide información sobre el servidor y el entorno, y que al finalizarlo genera un fichero de configuración my.cnf optimizado, según las indicaciones que se le han ido dando al asistente. Podemos probarlo en el siguiente enlace "Asistente de configuración de Percona".

Atención, durante las pruebas, he detectado que el asistente online de Percona, no define bien el parámetro correspondiente al PID. En mi caso, lo he encontrado definido como "pid-file" en lugar de "pid_file". Ésto me ha dado más de un quebradero de cabeza. Finalmente he modificado el my.cnf para definir correctamente el pid, así:

pid-file  = /var/lib/mysql/data/perconatest.pid

También he cambiado la cabecera de la sección del cliente, pasándo de [mysql] a [client], en el mismo my.cnf.

En cualquier caso, deberemos crear el fichero my.cnf (ya sea con nuestros propios valores o con los que nos propone el asistente de Percona) tal y como sigue:

vi /etc/my.cnf
<configurar el fichero al gusto>
chown root:root /etc/my.cnf
chmod 644 /etc/my.cnf

Una vez tengamos nuestro fichero /etc/my.cnf (hay que recordar que el my.cnf generado por el asistente, puede ser un buen punto de partida, pero no sustituye un buen tuning), ya podremos pasar a trabajar con el servidor, tal y como lo haríamos como si de un servidor MySQL usual se tratara.

También merece la pena, si se puede, configurar la replicación en Percona, para tener un entorno Master-Slave.

Post-instalación de Percona Server

En cuanto tengamos la configuración, podemos pasar a la post-instalación, primeramente creando las tablas de sistema:

/usr/bin/mysql_install_db

Una vez creadas, pasaremos a iniciar Percona:

[root@perconatest]# /etc/init.d/mysql start
Starting MySQL (Percona Server)... SUCCESS!

Una vez iniciado, ejecutaremos el script "/usr/bin/mysql_secure_installation", el cual se encarga de generar las tablas de sistema, además de proporcionarnos un pequeño asistente para cambiar el password de root, y deshabilitar accesos no deseados. Afortunadamente, también podemos hacer ésto con Percona:

/usr/bin/mysql_secure_installation

Si tienes dudas con el asistente, una opción es cambiar el password de root, eliminar los usuarios anónimos, deshabilitar el login de root remoto, eliminar las bases de datos de test y finalmente recargar los privilegios. Tras ello, ya podremos loguearnos:

[root@perconatest]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.28-29.3 Percona Server (GPL), Release rel29.3, Revision 388

Solución de errores

En caso de que fallara la creación de las tablas de sistema, veríamos un error como el siguiente al intetnar iniciar Percona:

[root@perconatest ~]# /etc/init.d/mysql start
Starting MySQL (Percona Server)... ERROR! The server quit without updating PID file (/var/lib/mysql/data/perconatest.pid).

El error anterior se puede solucionar reinstalando las tablas del sistema, con el siguiente script:

/usr/bin/mysql_install_db

En mi caso concreto, también he realizado pruebas de instalación sobre servidores CentOS 6.3 x86_64. En estos servidores, me he encontrado que ya venía instalado con el SO (instalación minimal) el paquete "mysql-libs" en su versión 5.1, que me era incompatible con Percona Server 5.5 (muestra un error durante la instalación con yum). Como en los repositorios oficiales no vienen actualizaciones para este paquete, he tenido que instalar EPEL y el repositorio de REMI para poder instalar Percona. Así, durante la instalación de Percona se me ha actualizado "mysql-libs" a la versión adecuada para Percona Server 5.5. Ésto lo he hecho tal y como sigue:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

Tras la instalación de los repositorios, he tenido que habilitar el de remi, y tras la configuración del repositorio de Percona, ya he podido instalar.

 

Fuentes:

https://tools.percona.com/

http://www.percona.com/doc/percona-server/5.5/installation/yum_repo.html

http://dev.mysql.com/doc/refman/5.5/en/index.html