En esta ocasión vamos a ver cómo instalar MySQL Server en Fedora 35, 34 y 33 paso a paso, de modo que puedas trabajar con el servidor de bases de datos más famoso en tu servidor o VPS Fedora, tanto para tus propios desarrollos como para base de multitud de aplicaciones.
Contenido
Antes de instalar MySQL Server en Fedora 35/34/33
Para poder seguir esta pequeña guía de instalación de MySQL Server en Fedora 35, 34 y 33 todo lo que necesitarás es lo siguiente:
- Una máquina Fedora 35, 34 ó 33 actualizada.
- Un usuario con permisos de sudo o el mismo root.
- Acceso a Internet.
Cómo instalar MySQL Server en Fedora 35/34/33
Vamos a instalar MySQL Server en Fedora 35, 34 y 33 desde los repositorios de la distribución, por lo que el paso inicial será actualizar las listas de paquetes disponibles:
~$ sudo yum update
El paquete que necesitamos es community-mysql-server que instalaremos con yum:
~$ sudo yum install -y community-mysql-server
Finalizada la descarga e instalación de MySQL Server y sus dependencias se crea un nuevo servicio en Fedora 35, 34 y 33, el servicio mysqld.service o mysqld si prefieres el nombre corto. Este servicio no queda en ejecución ni habilitado tras el proceso de instalación, por lo que tendremos que realizar estos pasos manualmente.
Para iniciar MySQL Server por vez primera en Fedora 35/34/33 usaremos el comando systemctl:
~$ sudo systemctl start mysqld
Podremos comprobar que el servicio queda en ejecución con el comando systemctl status mysqld
:
Esta comprobación la podremos realizar en cualquier momento.
Para que MySQL Server esté siempre disponible y arranque automáticamente con cada inicio de Fedora 35, 34 y 33, debemos habilitar el servicio mysqld:
~$ sudo systemctl enable mysqld
Cómo instalar el cliente de MySQL en Fedora /35/34/33
Si lo que necesitas es instalar el cliente de MySQL en Fedora 34, 34 y 33 pero sin el servidor, entonces el paquete que buscas es community-mysql:
~$ sudo yum install -y community-mysql
Dispondremos del cliente de consola mysql, con el que podremos conectar remotamente a los servicios MySQL deseados.
Si has instalado MySQL Server no será necesario instalar el cliente, ya que forma parte de las dependencias.
Cómo configurar MySQL Server en Fedora /35/34/33
A la hora de configurar MySQL Server en Fedora 35, 34 y 33 hay que tener en cuenta que su archivo de configuración principal my.cnf se encuentra en la ruta /etc/, aunque realmente este archivo se limita a cargar las configuraciones de los archivos organizados bajo la ruta /etc/my.cnf.d/.
Configurar el usuario root de MySQL
Por defecto el usuario root de MySQL en Fedora 35, 34 y 33 no tiene contraseña, por lo que cualquier usuario lo podrá utilizar para acceder con el cliente de consola mysql:
~$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.27 Source distribution ... mysql>
Tenemos varias opciones para cambiar esta situación.
Crear una contraseña manteniendo el plugin por defecto
Podemos crear una contraseña, teniendo en cuenta que el plugin que usa por defecto root es caching_sha2_password, un plugin que puede no ser compatible con ciertos clientes o conectores. Crear la contraseña sería tan fácil como lanzar el siguiente comando:
> alter user root@localhost identified by 'XXXXXXXX';
Sería conveniente refrescar la tabla de permisos:
> flush privileges;
Y cerramos la sesión:
> exit
A partir de este momento ya no será posible acceder sin contraseña:
~$ mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Habrá que indicar que se quiere realizar la autenticación con contraseña:
~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 8.0.27 Source distribution ... mysql>
Cambiar de plugin con contraseña
Si queremos crear una contraseña pero queremos posibilitar la autenticación con clientes y conectores que no soportan el plugin caching_sha2_password, podemos cambiar al plugin más compatible mysql_native_password creando a la vez la nueva contraseña:
> alter user root@localhost identified with mysql_native_password by 'XXXXXXXX';
Es conveniente refrescar la tabla de permisos. El acceso se realizará del mismo modo que en el caso anterior, indicando solicitud de contraseña.
Cambiar de plugin sin contraseña
Si nos resulta cómodo trabajar sin contraseña y sólo usaremos root para acceso local desde consola, pero no queremos que cualquier usuario pueda acceder como administrador, podemos cambiar al plugin auth_socket, que permite conectar sin contraseña solamente como usuario root o a través de sudo. Sin embargo, este plugin no se carga por defecto, así que será necesario configurar MySQL Server editando el archivo community-mysql-server.cnf:
~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf
Añadimos la siguiente directiva plugin-load-add en la sección mysqld:
... [mysqld] ... plugin-load-add=auth_socket.so ...
Una vez guardados los cambios será necesario reiniciar el servicio mysqld:
~$ sudo systemctl restart mysqld
Iniciada la sesión con el cliente mysql, ya podremos realizar el cambio de plugin:
> alter user root@localhost identified with auth_socket;
Como en los casos anteriores, se aconseja refrescar la tabla de permisos.
A partir de este momento no será necesario utilizar contraseña para iniciar sesión, ya que sólo se podrá acceder como usuario root de Fedora 35, 34 y 33:
~# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.27 Source distribution ... mysql>
O como usuario con privilegios de sudo:
~$ sudo mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 8.0.27 Source distribution ... mysql>
Plugin de autenticación por defecto
Hemos visto anteriormente que MySQL Server en Fedora 35, 34 y 33 tiene configurado por defecto el plugin de autenticación caching_sha2_password, que es más seguro pero es incompatible con clientes y conectores más antiguos o de terceros, como la extensión para conectar desde PHP.
Puedes solventar este problema creando los usuarios que necesiten el sistema de autenticación tradicional con el plugin de autenticación mysql_native_password:
> create user usuario@localhost identified with mysql_native_password by 'XXXXXXXX';
Pero si básicamente los usuarios que vas a crear usarán en su mayoría este plugin puede ser buena idea configurarlo como plugin de autenticación por defecto. Para ello editaremos el archivo community-mysql-server.cnf:
~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf
Y añadimos una directiva default-authentication-plugin en la sección mysqld:
... [mysqld] ... default-authentication-plugin=mysql_native_password ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart mysqld
A partir de este momento, cualquier nuevo usuario que se cree sin especificar contraseña lo hará con el plugin por defecto, mysql_native_password:
> create user usuario@localhost identified by 'XXXXXXXX';
Si alguna vez necesitas un usuario con autenticación caching_sha2_password, habrá que indicar este plugin durante su creación:
> create user usuario@localhost identified with caching_sha2_password by 'XXXXXXXX';
Crear un usuario administrador
Es buena idea que el usuario root de MySQL no pueda conectar remotamente, para evitar ataques al servicio, pero sí sería útil disponer de un usuario administrador con posibilidades de acceso remoto, que crearíamos del siguiente modo:
> create user instalador identified with mysql_native_password by 'XXXXXXXX';
La elección del plugin dependerá de los conectores y clientes que se prevea usar. Una vez creado este usuario le daremos privilegios suficientes para administrar y crear bases y usuarios:
> grant all privileges on *.* to instalador with grant option;
Y refrescamos la tabla de permisos antes de finalizar la conexión:
> flush privileges;
Acceso remoto a MySQL Server en Fedora 35/34/33
Por defecto el acceso remoto al servicio MySQL Server en Fedora 35, 34 y 33 se encuentra activado. Si sólo deseamos que el servicio atienda peticiones locales es buena idea desactivar el acceso remoto en la configuración de MySQL, para lo que editamos el archivo community-mysql-server.cnf:
~$ sudo nano /etc/my.cnf.d/community-mysql-server.cnf
Bastará con añadir una directiva bind-address en la sección mysqld:
... [mysqld] ... bind-address=127.0.0.1 ...
Guardados los cambios, reiniciamos el servicio:
~$ sudo systemctl restart mysqld
Pero si hemos decidido mantener el acceso remoto habrá que configurar el firewall.
Cómo configurar el firewall de Fedora 35, 34 y 33 para MySQL Server
Tendremos que añadir una excepción al firewall que permita las conexiones entrantes al servidor MySQL de Fedora 35, 34 y 33:
~$ sudo firewall-cmd --permanent --add-service=mysql
Hay que recargar la configuración del firewall para aplicar los cambios:
~$ sudo firewall-cmd --reload
Cómo acceder remotamente a MySQL Server en Fedora 35/34/33
Para acceder de forma remota al servicio MySQL Server en Fedora 35, 34 y 33 usaremos algún cliente que sea capaz de trabajar con el plugin de autenticación del usuario que emplearemos para la conexión.
En este caso utilizaremos el cliente de consola mysql desde otra máquina en red, utilizando además de los parámetros de usuario y contraseña el parámetro -h para indicar la dirección del servidor Fedora 35, 34 y 33.
Por ejemplo, la máquina Fedora 35 sobre la que hemos realizado este artículo es accesible en el subdominio fedora.local.lan, así que conectaremos desde otra máquina Linux con el cliente de consola mysql de la siguiente forma:
~$ mysql -h fedora.local.lan -u instalador -p
Conclusión
Ahora que sabes cómo instalar y configurar MySQL Server en Fedora 35, 34 y 33 tienes la herramienta perfecta para desarrollar potentes bases de datos o simplemente instalar esas aplicaciones que requieren este tipo de motor de bases de datos para su funcionamiento.
Si tienes alguna duda o pregunta, sugerencia de mejora, crees que hay que actualizar este artículo, quieres notificar algún error, etc. puedes dejar un comentario y lo revisaremos lo antes posible. Por cierto, el filtro antiSPAM no deja pasar una, así que es inútil intentarlo.
¡Apoya comoinstalar.me!
¿Ya puedes empezar a trabajar con bases de datos en tu propio sistema gracias a nuestra pequeña guía de instalación y configuración? Si es así y te apetece agradecérnoslo contribuyendo al mantenimiento de este sitio y la creación de más tutoriales y guías, puedes hacerlo dejando 1 $ de propina desde PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!
Actualizado a la versión 8.0.27 sobre Fedora 35.