CentOS 7 and MySQL 5.6

Un poco de historia

La última versión de Red Hat Enterprise Linux, una de las distribuciones de Linux más populares y respetadas en el mercado de servidores, se publicó en junio de 2014, seguido por los lanzamientos de CentOS 7 y Oracle Linux en julio del mismo año.

Hay cambios muy interesantes para administradores de bases de datos en estas nuevas versiones, de las cuales me gustaría destacar el hecho de que el instalador oficial ahora selecciona XFS como el sistema de archivos por defecto, sustituyendo a ext4 como el formato preferido para almacenamiento local. Red Hat EL7 también incluye Btrfs como tech preview.

Respecto a paquetería, el cambio con mayor impacto es, en mi opinión, la actualización de las versiones de MySQL y PostgreSQL, en verdad necesitadas de un upgrade, ya que la anterior versión de Red Hat, 6.5, todavía utilizava versiones con 5 años de edad de ambos SGBBDD, los cuales se encontraban fuera de su ciclo de vida de soporte. La mayor sorpresa es que Red Hat ha optado por elegir MariaDB 5.5, y no Oracle, como el proveedor por defecto de MySQL (o compatible). Esto tiene la hilarante consecuencia de que Oracle Linux está distribuyendo en realidad la versión de su competidor, MariaDB a través de sus repositories, con el objetivo de ser 100% compatible. La diferencia, claro está, es que Oracle ofrece la última versión de MySQL en sus repositorios de yum y, por lo tanto, está disponible para su instalación en todas las distribuciones compatibles con Red Hat.

Prerequisitos

En este tutorial os mostraremos cómo instalar MySQL 5.6 en CentOS 7, útil para aquellos que prefieran desplegar la última versión GA de MySQL. 5.6 introduce una gran cantidad de mejoras sobre MySQL 5.5, y dado que Red Hat EL7 tiene un ciclo de soporte de al menos 10 años, es posible que se vuelva muy anticuada en el futuro. Vamos a mostrar el proceso en CentOS 7, pero éste será idéntico en RHEL 7 y, hasta cierto punto, en otras distribuciones basadas en yum como las últimas versiones de Fedora y Amazon Linux.

Por favor, tenga en cuenta que el siguiente tutorial supone que no hay una versión previamente instalada de MySQL o MariaDB. Puede utilizar el siguiente comando: rpm -qa | grep -i mysql para comprobar paquentes de MySQL que estén instalados con anterioridad, y borrarlos con el comando yum remove.

Tutorial

El primer paso es configurar el repositori de MySQL de Oracle; para ello, nos dirigimos a la web de mysql.com, pulse en “Downloads“, luego en “Yum repository” y finalmente en “Red Hat Enterprise Linux 7”. En el momento de escribir estas líneas, está versión del respositorio se encuentra todavía en beta, pero no tuve problemas para instalarlo en diversas conbinaciones de software y hardware. Seleccione “Download” y le aparecerá la opción de acceder o crear una cuenta de Oracle. Podemos omitir este paso y simplemente copiar el enlace en la parte inferior que dice “No thanks , just start my download”. Esto nos proporcionará la dirección del rpm para auto-configurar los repositorios de la versión Community del servidor de MySQL.

Ahora, si ejecuta en un terminal:

Podemos comprobar que los respositories están efectivamente activos ejecutando:

Acabamos de realizar la configuración (sólo es necesario hacerlo una vez) que nos permitirá instalar y mantener actualizada nuestra instalación de MySQL de manera fácil y sencilla.

El siguiente paso es instalar realmente los paquetes del servidor. Para ello, escribimos:

Como podrá apreciar, los paquetes del servidor Community hacen referencia a la última versión de MySQL 5.6. Durante el proceso de instalación, sólo dos interrupciones se producirán (aparte de la petición de contraseña de sudo), una para la confirmación de los cambios, y otra para la importación de la clave de releases de los ingenieros de Oracle en su sistema, que podremos aceptar sin problemas si su fingerprint conincide con el siguiente: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5. Recuerde que, en el caso de procesos automatizados, podemos añadir la opción -y (decir sí a todo) a yum, pero quería mostrar el proceso completo, así como realizar el proceso con buenas prácticas de seguridad.

La instalación ya se ha completado, ahora sólo tenemos que ejecutarlo y probarlo. Recuerde que Red Hat Enterprise Linux 7 reemplaza la gestión de servicios por systemd, por lo que la manera “correcta” de iniciar el servicio de mysql es:

Puede comprobar que ha iniciado correctamente haciendo:

Y conectarse desde localhost haciendo:

Recuerda también activar el autoinicio en el arranque, ya que es algo que querrás en la mayoría de los casos (esto también ha cambiado comparado con CentOS 6):

Puede comprobar que se ha activado correctamente con el comando ‘status’ mostrado anteriormente; debería mostrarse ahora como “enabled” (activado).

Como buen administrador, los siguientes pasos son configurar las cuentas de usuario y securizar el servicio de mysql, pero eso está fuera de los objetivos de este tutorial.

Gracias a la instalación mediante respositorios, sus paquetes ahora pueden ser actualizados fácilmente tan sólo usando yum.

Para una documentación más detallada, puede revisar la documentación oficial. Los ingenieros de Oracle publicaron también una interestante historia sobr el proceso de pruebas de sus paquetes.

Espero que este tutorial haya sido de utilidad.

Cómo instalar MySQL 5.6 en CentOS 7
Etiquetado en:                                                                                
  • Juan Manuel Oyoqui

    Hola

    Intente seguir tu tutorial pero cuando ejecuto ” sudo systemctl start mysqld”

    obtengo el error:

    Job for mysqld.service failed. See ‘systemctl status mysqld.service’ and ‘journalctl -xn’ for details.

    y al revisar systemctl status mysqld.service me manda lo siguiente

    mysqld.service – MySQL Community Server

    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled)

    Active: failed (Result: start-limit) since Sat 2014-11-01 08:47:45 CST; 12s ago

    Process: 4158 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=1/FAILURE)

    Nov 01 08:47:45 npss-backup-dev systemd[1]: mysqld.service: control process exited, code=exited status=1

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Failed to start MySQL Community Server.

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Unit mysqld.service entered failed state.

    Nov 01 08:47:45 npss-backup-dev systemd[1]: mysqld.service holdoff time over, scheduling restart.

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Stopping MySQL Community Server…

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Starting MySQL Community Server…

    Nov 01 08:47:45 npss-backup-dev systemd[1]: mysqld.service start request repeated too quickly, refusing to start.

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Failed to start MySQL Community Server.

    Nov 01 08:47:45 npss-backup-dev systemd[1]: Unit mysqld.service entered failed state.

    Que crees que pueda estar mal?

    estoy en Centos 7

    • jynus

      Parece que simplemente te falló el inicio de MySQL. Cosas que pueden hacer fallar MySQL: permisos de sistema de archivos o de selinux, falta de espacio en disco o una configuración errónea.

      Echa un vistazo al log de mysql (normalmente, en /var/log/mysql/) o inicia directamente mysqld_safe para comprobar qué fue lo que falló. Si no cambiaste la configuración ni recuperaste datos, selinux suele ser un buen candidato, especialmente con paquetes de terceros.

  • Juan Sanchez

    Muy buen tutorial me ayudo bastante, muchas gracias.

  • Fredy Silva

    Muchas gracias, me salvo la vida!!!!… toda la noche buscado como hacer correr MySql en CentOS 7