Qué es MySQL y cómo configurarlo en CentOS 6

Objetivo

Realizar una breve introducción a MySQL como motor de base de datos, y configurar el servidor como un servidor de base de datos seguro.

La Base De Datos MySQL

MySQL es una base de datos relacional robusta propiedad de Oracle, que actualmente cuenta con al rededor de seis millones de instalaciones, parte de su popularidad es debido a su licencia dual, siendo una de ellas GPL (General Public License) que permite usarla sin costo y ademas de que se usa comunmente con el lenguaje de programación PHP. MySQL es muy usado en empresas grandes de la web como lo son Google, Twitter, Wikipedia, Flickr y YouTube, por lo que se puede ver que es una pieza de software bastante útil y preparada para negocios profesionales.

En esta guía se mostrará como instalar la base de datos MySQL, como configurarla, cuales son sus archivos principales y ademas de esto, a pesar de que esta base de datos se puede administrar totalmente por consola, se mostrará como instalar phpMyAdmin el cual es un cliente gráfico que permite administrar esta base de datos de manera más sencilla y práctica.

Instalación Y Puesta En Marcha de MySQL

Al inicio de la guía en el proceso de instalación, dentro de la sección de selección de paquetes para instalar, ya se seleccionó el motor de base de datos MySQL para ser instalador, pero en el caso de que este paso no se haya realizado, se debe ejecutar el siguiente comando para su instalación.

yum -y install mysql-server

Luego de instalar el paquete, se procede a activar el servicio y con el comando netstat se verifica que esté corriendo en el puerto 3306.

service mysqld start
chkconfig mysqld on
netstat -ntpl

Ahora se debe habilitar el firewall para poder usar correctamente mysql en red, para ello con el comando setup se puede acceder al panel de configuración como se ve en la imagen siguiente; se accede a la configuración de firewall (asegurandose de que esté activo), luego se ingresa a la sección Customize (personalizar) y si mysql no se encuentra en la lista entonces se accede a la sección Forward (adelante o siguiente) y se agregar un nuevo puerto para que pueda ser accesado por otros hosts a traves de la red, el puerto debe ser 3306 tcp (tcp en minusculas). Por ultimo se cierra el setup y se reinicia el firewall.

Para entrar a la configuración del firewall se usa el comando siguiente.

setup

Para reiniciar el firewall se usa el comando siguiente.

service iptables restart

Archivos De Configuración De MySQL

MySQL al igual que apache tiene un archivo de configuración principal, este se encuentra en la ruta /etc/ y se llama my.cnf. Como se ve en la imagen de abajo el contenido es bastante corto y entendible. Los puntos de configuración a destacar de este archivo son los siguientes.

Todas las instancias (o bases de datos) que tengamos alojadas en mysql quedarán guardadas en /var/lib/mysql como dice la linea con la instrucción datadir.

datadir=/var/lib/mysql

La directiva socket guarda la instrucción del sistema operativo para realizar las conexiones a mysql (es un middleware o capa intermedia); en ocasiones cuando por ejemplo se realizan instalaciones manuales de mysql la conexión suele fallar, la razón mas probable es por que este archivo está mal configurado y la solución es borrar este archivo (mysql.sock) y reiniciar el servicio de mysql para que el servicio mismo lo cree automáticamente y así eliminar el fallo.

socket=/var/lib/mysql/mysql.sock

Luego esta la instrucción que muestra cual es el usuario que usa el servicio mysql para sus procesos, que es el usuario mysql

user=mysql

Para permitir enlaces simbólicos dentro de la carpeta donde se guardan las instancias de la base de datos se debe activar la siguiente instrucción con un 1 en vez de 0.

symbolic-links=0

Por último está la configuración de donde se guardan los logs de mysql (mysqld.log) y donde se guarda el PID (Identificador de Proceso) de mysql que es en mysqld.pid

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Instalación De PhpMyAdmin

Descargar PhpMyAdmin

PhpMyAdmin es una aplicación cliente para la administración de la base de datos MySQL, está hecho en el lenguaje php y por lo tanto para usarlo se debe desplegar como cualquier otro sitio web dentro de apache. Primero se descargará el paquete comprimido donde viene phpMyAdmin desde el sitio web http://www.phpmyadmin.net; debido a que la versión de mysql que se está usando en esta guía es la versión 5.1, y no la ultima que es la 5.6 no se puede usar la ultima versión de phpMyAdmin, se usará la versión 3.5.

Desde la página principal de phpMyAdmin se hace click en el botón Download que está en el menu superior, luego al final de la página de descargas, en la sección Older Releases (Lanzamientos Anteriores) habrá un enlace que se llamará SourceForge files pages, que dirigirá la navegación hacia todas las versiones de phpMyAdmin lanzadas. Se accede al enlace phpMyAdmin y se busca la versión 3.5.8.1, se accede a este enlace y desde esta última página se descarga el paquete phpMyAdmin-3.5.8.1-all-languages.zip.

El Repositorio Epel

Despues de haber descargado el paquete de phpMyAdmin, antes de montarlo en apache es necesario instalar unas cuantas dependencias. Una de estas dependencias (php-mcrypt) solo está disponible a través de un repositorio que aún no está instalado, así que a continuación se debe instalar el repositorio Epel.

Para descargar el repositorio epel, se debe ingresar a http://dl.fedoraproject.org, especificamente en el enlace http://dl.fedoraproject.org/pub/epel/6/ el cual lleva a los paquetes disponibles para la versión 6 de centos, en esta página se debe seleccionar la arquitectura de la maquina en la que se va a instalar y en la siguiente página se debe buscar el paquete llamado epel-release-6-8.noarch.rpm y se descarga.

Luego haber descargado el repositorio, queda instalarlo y después de haberlo instalado se deben instalar las dependencias de php necesarias para el funcionamiento de phpMyAdmin.

rpm -ivvh epel-release-6-8.noarch.rpm
yum install php-mysql php-mbstring php-mcrypt
Instalar PhpMyAdmin

Para instalar phpMyAdmin se creará una carpeta en /var/www y se hará uso de un álias de apache.

mkdir /var/www/phpmyadmin
mv phpMyAdmin-3.5.8.1-all-languages.zip /var/www/phpmyadmin/
cd /var/www/phpmyadmin
unzip phpMyAdmin-3.5.8.1-all-languages.zip

PhpMyAdmin tiene un archivo de configuración propio llamado config.inc.php, pero no está habilitado por defecto, aún así hay un archivo llamado config.sample.inc.php que es una plantilla de este archivo de configuración, así que lo que se debe hacer es copiar este archivo y cambiarle el nombre; por defecto ya viene configurado con lo necesario.

cp config.sample.inc.php config.inc.php

Luego de crear la carpeta y descomprimir todos los archivos, se debe cambiar el dueño de la carpeta a apache para que no hayan problemas de permisos.

cd ..
chown apache:apache -R phpmyadmin

Queda por crear el álias dentro del archivo de configuración de apache, reiniciar el servicio y probar su funcionamiento desde un navegador. para iniciar sesión en phpMyAdmin de hace con los usuarios y contraseñas de mysql.

phpmyadmin alias phpmyadmin navegador phpmyadmin sesion