En esta entrada veremos cómo instalar MySQL Server en CentOS 6 paso a paso, de modo que puedas disfrutar de este servicio de bases de datos en tu viejo servidor o VPS CentOS para tus aplicaciones o desarrollos.
Contenido
Antes de instalar MySQL en CentOS 6
Para seguir esta guía de instalación de MySQL en CentOS 6 se necesita muy poca cosa, a saber:
- Un sistema CentOS 6, cuanto más actualizado mejor.
- El paquete wget.
- Un usuario que pueda trabajar con sudo, o el mismo root.
- Conexión a Internet.
Debido a la edad de CentOS 6, y aunque tendrá soporte hasta finales del año 2020, la versión de MySQL Server que podemos encontrar en los repositorios de la distribución está bastante obsoleta, ya que se trata de la 5.1.73. Si quisieras instalar esta versión no tendrías más que instalar el paquete mysql-server con yum:
~$ sudo yum install -y mysql-server
Pero vamos a explorar otra opción más interesante, que no es ni más ni menos que descargar la última versión disponible de MySQL, la 8.0.18 en el momento de redactar esta guía, desde el repositorio oficial.
Cómo instalar el repositorio de MySQL en CentOS 6
Para instalar el repositorio de MySQL en CentOS 6 acudiremos a la web oficial de MySQL:
Una vez allí nos dirigiremos a la sección de descargas y obviaremos la información sobre los productos empresariales, iremos a la parte inferior de la página para encontrar las descargas de la comunidad:
Seguiremos el enlace «MySQL Community (GPL) Downloads» y encontraremos todas las descargas de MySQL con licencia GPL:
Precisamente, de todas las opciones disponibles, el repositorio para Yum es la primera opción, así que seguiremos el enlace al repositorio:
Se desplegarán las descargas para las distintas versiones de CentOS y otros sistemas. Elegiremos la descarga para «Red Hat Enterprise Linux 6…» y se abrirá una página que nos permite iniciar sesión en nuestra cuenta de Oracle, o abrir una nueva cuenta:
No necesitamos iniciar sesión o crear una cuenta, ya que el enlace al paquete que buscamos está en «No thanks, just start my donwload«. Puedes descargarlo directamente desde el navegador, pero en esta ocasión lo copiaremos y descargaremos desde consola con el comando wget:
~$ wget https://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm
Ahora puedes instalar el paquete que acabas de descargar con yum:
~$ sudo yum install -y mysql80-community-release-el6-3.noarch.rpm
Con el nuevo repositorio instalado, hay que proceder a una actualización de las listas de paquetes y software instalado:
~$ sudo yum update -y
Si ya tenías instalada la versión de MySQL de los repositorios de CentOS 6, se actualizará automáticamente a la disponible en el repositorio de Oracle.
Cómo instalar MySQL Server en CentOS 6
Con el repositorio de Oracle activado, para instalar MySQL Server en CentOS 6 bastará con usar el comando yum y el paquete deseado, que es mysql-comunnity-server:
~$ sudo yum install -y mysql-community-server
Se descargarán e instalarán el paquete y todas sus dependencias, tras lo cual dispondremos de un nuevo servicio en CentOS 6, el servicio mysqld.
Iniciaremos el servicio mysqld con el comando service:
~$ sudo service mysqld start
Además, MySQL iniciará automáticamente en cada arranque de CentOS 6.
Para poder acceder al servicio mediante el usuario root de MySQL debes saber que la instalación ha generado una contraseña temporal que puedes encontrar en el resgistro de MySQL:
~$ sudo grep password /var/log/mysqld.log ... 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: -3YlfKC*rDbu
Usaremos la contraseña temporal para iniciar sesión como root:
~$ mysql -u root -p-3YlfKC*rDbu
Al tratarse de una contraseña temporal, la única operación que se nos permite es el cambio de contraseña:
> alter user root@localhost identified by 'XXXXXXXX';
Tendrás que usar una contraseña bastante segura, con números, mayúsculas y minúsculas, etc. ya que MySQL 8 es bastante quisquilloso con las contraseñas.
Puedes aprovechar para crear un usuario administrador distinto de root, con permisos para acceso remoto:
> create user chacho identified by 'XXXXXXXX'; > grant all privileges on *.* to chacho with grant option;
En cualquier caso, antes de terminar la sesión conviene refrescar las tablas del sistema de permisos:
> flush privileges; > exit
Configuración del firewall para acceso remoto
Por defecto MySQL 8 está configurado para permitir conexiones remotas. En este tutorial acabamos de crear un usuario con capacidad de conexión remota. Sin embargo, si no configuramos el firewall de CentOS 6 no podremos conectar a MySQL Server desde otras máquinas.
Echaremos un vistazo a la configuración actual del firewall con el comando iptables:
~$ sudo iptables -L --line Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED 2 ACCEPT icmp -- anywhere anywhere 3 ACCEPT all -- anywhere anywhere 4 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh 5 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited ...
Viendo el estado de la cadena INPUT queda claro que debemos insertar nuevas reglas por encima de la quinta entrada (REJECT), por tanto insertaremos esta regla:
~$ sudo iptables -I INPUT 5 -m state --state NEW -p tcp --dport=3306 -j ACCEPT
Y haremos permanentes los cambios con el comando service:
~$ sudo service iptables save
Cómo instalar el cliente de MySQL en CentOS 6
El cliente de MySQL se instala como dependencia al instalar MySQL Server en CentOS 6, pero si únicamente quieres instalar el cliente de MySQL entonces el paquete que necesitas es mysql-community-client:
~$ sudo yum install -y mysql-community-client
Podrás usarlo simplemente lanzando el comando mysql.
Acceso remoto a MySQL en CentOS 6
Para acceder remotamente al servicio MySQL de nuestro servidor CentOS 6 bastará usar un cliente indicando la dirección IP o dominio del servidor.
Por ejemplo, desde otra máquina Linux podemos usar el cliente mysql, indicando la dirección del servidor con el parámetro -h:
~$ mysql -h centos6.local.lan -u chacho -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 8.0.23 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Cómo configurar MySQL en CentOS 6
Para configurar MySQL en CentOS 6 tendrás que trabajar sobre su archivo principal de configuración, en la ruta /etc/my.cnf.
En principio no hay mucho que hacer, pero como ejemplo podemos ver cómo desactivar el acceso remoto al servicio (además de no configurando el firewall).
Editamos my.cnf:
~$ sudo nano /etc/my.cnf
Y añadimos la directiva bind-address al final del archivo:
bind-address=127.0.0.1
Aplicaremos los cambios reiniciando el servicio mysqld:
~$ sudo service mysqld restart
A partir de este momento, aunque el firewall permita las conexiones o no esté activado, no será posible conectar remotamente a MySQL Server en CentOS 6:
~$ mysql -h centos6.local -u chacho -p Enter password: ERROR 2003 (HY000): Can't connect to MySQL server on 'centos6.local' (111)
Conclusión
Ahora que sabes cómo instalar MySQL Server en CentOS 6 ya puedes disfrutar de la última versión de este popular servicio de bases de datos igual que si corrieras la última versión de CentOS.
En caso de dudas, preguntas, sugerencias, etc. puedes dejar un comentario.
¡Apoya este sitio!
Y si te ha servido esta pequeña guía de instalación y configuración de este potente servidor de bases de datos relacionales en tu propia máquina y quieres agradecérnoslo, cualquier mínima aportación al mantenimiento de este sitio y creación de más tutoriales y guías es bien recibida.
Puedes ayudar dejando 1 $ de propina con PayPal:
O, si te sientes especialmente generoso, invitándonos a un café:
¡Gracias!