MySQL 5.6 en CentOS 6 con PowerStack

Todos los que trabajan con versiones estables y profesionales de Linux saben que la llegada de las últimas versiones de un determinado software casi nunca llegan con los repositorios oficiales, siempre es necesario utilizar repositorios de terceros que complementan o actualizan nuestro servidor. El trio apache + PHP + MySQL no está exento de este problema y si bien es cierto que para CentOS contábamos con los repositorios Remi estos últimamente están algo desfasados, sobre todo con apache y MySQL, fundamentalmente este último.

powerstackBuscando un poco de información por internet he encontrado en foros oficiales que es muy probable que Remi deje de dar soporte a MySQL, esto fundamentalmente tras la compra de esta última por Oracle. Remi comenzaría a utilizar MariaDB, una base de datos de los fundadores de MySQL que muchos dicen que es mejor pero pocos han probado.

Entonces ¿que hacer si queremos seguir teniendo las ultimas versiones de MySQL utilizando Yum, esta brillante herramienta de CentOS para instalar paquetes? La solución es PowerStack:

PowerStack es un repositorio que permite ejecutar las últimas versiones de apache + MySQL + PHP en una versión de Linux Enterprise. Actualmente tanto CentOS como Red Hat Enterprise son compatibles (i686 y x86_64).

En la página oficial describen que es compatible con Plesk y la instalación del repositorio en CentOS es muy sencilla:

rpm -Uvh http://download.powerstack.org/powerstack-release-0-2.noarch.rpm

Hay que tener algunas consideraciones en cuenta:

  1. si tienes activado el repositorio CentALT y actualizados los paquetes de postfix (postfix-2.10.0) y perl-DBD-MySQL (perl-DBD-MySQL-4.020-1) estos paquetes son incompatibles con la version de mysql-libs que trae MySQL 5.6.
  2. debes desactivar el resto de repositorios como CentALT, Remi, Remi-test (se desactivan poniendo enable=0 en los archivos de extensión repo que se encuentran en la carpeta /etc/yum.repos.d)
  3. apache, php y mysql tienen que estar los 3 con PowerStack, actualizar PHP con Remi y MySQL con PowerStack es incompatible.

Si no cumplimos estas normas os pueden dar los siguientes errores al ejecutar yum install mysql:

Error: Package: php-mysql-5.4.14-1.el6.remi.x86_64 (@remi)
Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit)
Removing: mysql-libs-5.5.30-1.el6.remi.x86_64 (@remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Updated By: mysql-libs-5.6.10-2.x86_64 (powerstack)
Not found
Available: mysql-libs-5.5.29-1.el6.x86_64 (CentALT)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.5.29-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.1.66-2.el6_3.i686 (base)
Not found
Available: mysql-libs-5.1.67-1.el6_3.i686 (updates)
Not found

Error: Package: 2:postfix-2.10.0-1.el6.x86_64 (@CentALT)
Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit)
Removing: mysql-libs-5.5.30-1.el6.remi.x86_64 (@remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Updated By: mysql-libs-5.6.10-2.x86_64 (powerstack)
Not found
Available: mysql-libs-5.5.29-1.el6.x86_64 (CentALT)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.5.29-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.1.66-2.el6_3.i686 (base)
Not found
Available: mysql-libs-5.1.67-1.el6_3.i686 (updates)
Not found

Error: Package: perl-DBD-MySQL-4.020-1.el6.x86_64 (@CentALT)
Requires: libmysqlclient.so.18(libmysqlclient_16)(64bit)
Removing: mysql-libs-5.5.30-1.el6.remi.x86_64 (@remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Updated By: mysql-libs-5.6.10-2.x86_64 (powerstack)
Not found
Available: mysql-libs-5.5.29-1.el6.x86_64 (CentALT)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.5.29-1.el6.remi.x86_64 (remi)
libmysqlclient.so.18(libmysqlclient_16)(64bit)
Available: mysql-libs-5.1.66-2.el6_3.i686 (base)
Not found
Available: mysql-libs-5.1.67-1.el6_3.i686 (updates)
Not found

Si os dan esos errores lo que tenemos que hacer es eliminar php y cada uno de esos paquetes con rpm -e --nodeps $package.

Eliminando (desinstalando) PHP con Yum en CentOS 6

Lo primero que tenemos que hacer es saber que paquetes tenemos instalados:
rpm -qa |grep php

Esto nos devolverá el listado de paquetes que tenemos que quitar (es recomendable copiar el archivo php.ini a una ubicación segura por si acaso)
yum remove php php-common php-mysql (todos los paquetes)
De esta forma quedaría desinstalado PHP en nuestro servidor.

Ahora eliminamos los otros 2 paquetes
rpm -e --nodeps postfix-2.10.0-1.el6.x86_64
rpm -e --nodeps perl-DBD-MySQL-4.020-1.el6.x86_64

Instalando PHP + MySQL 5.6 en CentOS 6 con Yum

Desactivamos todos los repositorios menos el de PowerStack e instalamos de nuevo los paquetes anteriores (con las versiones compatibles)
yum install perl-DBD-MySQL
yum install postfix
yum install php

Y finalmente ya podemos actualizar MySQL a la versión 5.6 en CentOS utilizando Yum.

Comentarios

Anónimo ha dicho que…
Gracias , a mi me ha funcionado en la actualizacion de MySQL 5.1.67 sobre CentOS y Plesk 11.0.9 a la ultima version... gracias a PowerStack y a ti por compartir.
Santi Saez ha dicho que…
Reynier, muchas gracias por la referencia a PowerStack desde tu blog, me alegro de que el repositorio te sea útil :-)
Reynier de la Rosa ha dicho que…
Útil se queda corto, es muy útil sobre todo después del cambio de estrategia de REMI. Gracias a ti por el comentario.