Cómo instalar MySQL Server en Fedora 31

Cómo instalar MySQL Server en Fedora 31

En esta ocasión vamos a ver cómo instalar MySQL en Fedora 31 paso a paso, para que al final de este tutorial tengas instalado y configurado uno de los servicios de bases de datos relacionales más potentes que existen en tu servidor o VPS Fedora.

Antes de instalar MySQL en Fedora 31

Si quieres completar esta guía de instalación y configuración de MySQL Server en Fedora 31 deberías cumplir los siguientes requerimientos básicos:

  • Un sistema Fedora 31 actualizado.
  • Acceso a consola con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Cómo instalar MySQL en Fedora 31

Vamos a instalar MySQL Server en Fedora 31 usando los paquetes disponibles en el repositorio de la distribución, así que en primer lugar actualizaremos estas listas de paquetes:

~$ sudo yum update

El paquete que buscamos esta vez es community-mysql-server, que instalaremos con la herramienta yum:

~$ sudo yum install -y community-mysql-server

Una vez descargado e instalado el paquete community-mysql-server junto con todas sus dependencias, se habrá creado un nuevo servicio en Fedora 31 llamado mysqld.service o simplemente mysqld (si prefieres usar un nombre más corto).

Este servicio de MySQL Server no queda en ejecución tras la instalación, ni tampoco habilitado para su inicio automático junto a Fedora 31, circunstancias que superaremos manualmente.

En primer lugar habilitamos MySQL para que inicie automáticamente en cada arranque de Fedora 31:

~$ sudo systemctl enable mysqld

Y a continuación iniciamos el servicio mysqld por primera vez:

~$ sudo systemctl start mysqld

Siempre que quieras conocer el estado del servicio MySQL Server en Fedora 31 podrás comprobarlo con el comando systemctl status mysqld:

como instalar mysql en fedora 31

Puedes comprobar que esta versión de MySQL Server de los repositorios de Fedora 31 es bastante reciente, MySQL 8.0.

Cómo instalar el cliente de MySQL en Fedora 31

Si sólo quieres instalar el cliente de MySQL en Fedora 31, el comando mysql, el paquete que necesitas es community-mysql:

~$ sudo yum install -y community-mysql

Pero si has instalado MySQL Server no es necesario, ya que el cliente de consola mysql es una dependencia en el repositorio de Fedora 31, por lo que ya lo tendrías instalado.

Cómo configurar MySQL en Fedora 31

Siempre que quieras configurar MySQL en Fedora 31 tendrás que trabajar sobre sus archivos y directorios de configuración. El archivo principal es /etc/my.cnf, desde el que se cargan los archivos presentes en el subdirectorio /etc/my.cnf.d/.

Aunque los valores de configuración por defecto de MySQL en Fedora 31 son seguros, el usuario root no tiene contraseña. Puedes crear una contraseña iniciando sesión con el cliente de consola mediante el comando mysql -u root:

como instalar y configurar mysql server en fedora 31

Una vez iniciada la sesión bastará con usar la siguiente sentencia para asignar una contraseña para root:

> alter user root@localhost identified by 'XXXXXXXX';

Antes de salir del cliente es conveniente refrescar la tabla de permisos de MySQL:

> flush privileges;
> exit

Plugin de autenticación de usuarios por defecto

A la hora de crear nuevos usuarios en MySQL 8 debes saber que por defecto se usa el plugin de autenticación caching_sha2_password en lugar del tradicional mysql_native_password.

En su favor, este plugin ofrece mayor seguridad en las contraseñas, pero por contra no es compatible con clientes de versiones anteriores y clientes y conectores de terceros, como puede ser PHP.

Sin embargo, a la hora de crear un usuario puedes elegir con qué plugin se creará su contraseña. Por ejemplo, vamos a crear un nuevo usuario administrador distinto de root que pueda acceder incluso remotamente.

Si queremos que use el plugin por defecto, el caching_sha2_password, bastará con usar la típica sentencia de creación de usuarios:

> create user chacho identified by 'XXXXXXXX';

Sin embargo, si nos interesa usar el plugin mysql_native_password para que este usuario pueda usar sistemas de conexión antiguos o de terceros, tendremos que indicarlo en el momento de su creación:

> create user chacho identified with mysql_native_password by 'XXXXXXXX';

Puedes cambiar el plugin de un usuario que hayas creado anteriormente, pero deberás especificar la contraseña para que se adecúe al nuevo plugin:

> alter user chacho identified with mysql_native_password by 'XXXXXXXX';

Siguiendo con el ejemplo, para transformar a este usuario en administrador le daremos privilegios sobre todas las bases de datos con capacidad de administrar permisos sobre usuarios:

> grant all privileges on *.* to chacho with grant option;

Antes de salir del cliente no olvides refrescar la tabla de permisos.

Cómo cambiar el plugin de autenticación por defecto

Si la mayoría de tus usuarios van a trabajar con el plugin de autenticación mysql_native_password puede ser una buena idea convertirlo en el plugin por defecto, y crear de forma especial aquellos usuarios que usen otro.

Para cambiar el plugin por defecto editaremos community-mysql-server.conf:

~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf

En la sección mysqld añadiremos una directiva default-authentication-plugin con el valor del plugin que queramos usar como defecto:

...
default-authentication-plugin=mysql_native_password
...

Tras guardar los cambios, reiniciamos el servicio:

~$ sudo systemctl restart mysqld

A partir de este momento, si no se indica un plugin de autenticación durante la creación de los nuevos usuarios, estos se crean con el plugin que hayamos especificado en la nueva configuración por defecto.

Cómo activar el plugin de autenticación auth_socket para root

Un plugin de autenticación muy interesante es el plugin auth_socket, que permite iniciar sesión con el cliente mysql sin especificar contraseña, ya que se validará el inicio de sesión si el usuario de Fedora 31 que intenta conectar es el mismo que la cuenta de MySQL.

Puede ser interesante en algunos casos que root pueda acceder sin contraseña para ciertas tareas del sistema, eventos programados, etc. donde no deseamos dejar una contraseña escrita en los archivos de configuración.

Para usar este plugin es necesario cargarlo en el arranque de MySQL Server en Fedora 31, así que editaremos community-mysql-server.cnf:

~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf

Añadiremos una directiva plugin-load-add en la sección mysqld que asegure la carga de este plugin:

...
plugin-load-add=auth_socket.so
...

Guardamos los cambios y reiniciamos MySQL:

~$ sudo systemctl restart mysqld

Iniciamos sesión en MySQL con root o nuestro usuario administrador y cambiamos la autenticación de root (o el usuario que nos interese):

> alter user root@localhost identified with auth_socket by '';

Desde este momento el usuario de MySQL no necesita contraseña, pero se exige que la cuenta de Fedora 31 que inicia sesión tenga el mismo nombre que el usuario, ya sea un usuario con sesión iniciada:

[root@fedora31 ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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>

O usando sudo:

[chacho@fedora31 ~]$ sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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>

El inconveniente de esto es que en ciertas situaciones se exige autenticación con contraseña y estos usuarios no pueden acceder.

Acceso remoto a MySQL Server en Fedora 31

La configuración por defecto de MySQL en Fedora 31 permite el acceso remoto, aunque para ello es muy posible que tengamos que configurar el firewall.

Configurar el firewall de Fedora 31 para el acceso remoto a MySQL

Normalmente el firewall de Fedora 31 está activado y bloqueará las conexiones entrantes por defecto, incluyendo los puertos de MySQL. Para permitir el acceso remoto en el firewall añadiremos la siguiente regla:

~$ sudo firewall-cmd --permanent --add-service=mysql

Para aplicar esta nueva regla recargaremos la configuración del firewall:

~$ sudo firewall-cmd --reload

En este momento ya son posibles las conexiones remotas. Por ejemplo, accedemos desde otro sistema en red con el cliente de consola mysql instalado, usando el parámetro -h para indicar la dirección de la máquina Fedora 31 en la que hemos instalado MySQL Server, con el parámetro -u para indicar el usuario con acceso remoto permitido que utilizamos, y con -p para que se nos solicite la contraseña:

como configurar mysql server en fedora 31

Desactivar el acceso remoto

Si no quieres tener el acceso remoto a MySQL Server abierto en tu sistema Fedora 31, además de no añadir la regla del firewall puedes configurar MySQL para que sólo atienda conexiones locales.

Para ello editaremos community-mysql-server.cnf:

~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf

Y añadiremos esta directiva bind-address dentro de la sección mysqld:

...
bind-address=127.0.0.1

Los cambios harán efecto tras reiniciar el servicio mysqld:

~$ sudo systemctl restart mysqld

Conclusión

Ahora ya sabes cómo instalar MySQL Server 8.0 en Fedora 31, con lo que dispones de uno de los servicios de bases de datos relacionales más potentes en tu servidor o VPS Fedora, tanto para tus propios desarrollos como para soporte de aplicaciones complejas que lo requieren. Además, ya sabes cómo lidiar con el sistema de plugins de MySQL y cómo permitir o denegar el acceso remoto al servicio en Fedora 31.

Si te ha quedado alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Has llegado a tu meta gracias a esta pequeña guía de instalación y configuración de MySQL en Fedora 31? Si es así y quieres agradecérnoslo, cualquier mínima aportación ayuda al mantenimiento de este sitio y creación de más guías de Fedora 31 y MySQL. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies