Cómo instalar MySQL en FreeBSD 12.1

En este artículo veremos cómo instalar MySQL Server en FreeBSD 12.1 paso a paso, de modo que podrás disponer de uno de los servicios de bases de datos relacionales más potentes y usados en tu servidor o VPS FreeBSD.

Antes de instalar MySQL en FreeBSD 12.1

Para completar esta guía de instalación y configuración de MySQL en FreeBSD 12.1 es importante partir de unos requerimientos básicos:

  • Una instalación de FreeBSD 12.1 actualizada.
  • Acceso a consola como root o un usuario con privilegios de sudo.
  • Conexión a Internet.

Cómo instalar MySQL en FreeBSD 12.1

Vamos a instalar MySQL en FreeBSD 12.1 desde los mismos repositorios del sistema, que incluyen varias versiones de este servicio de bases de datos. Por tanto el primer paso será actualizar la información de los repositorios:

~$ sudo pkg update

Para saber qué versiones de MySQL Server podemos instalar desde los repositorios de FreeBSD 12.1, una simple búsqueda filtrada nos lo dirá:

$ pkg search ^mysql |grep -i server
...
mysql55-server-5.5.62_3        Multithreaded SQL database (server)
mysql56-server-5.6.45          Multithreaded SQL database (server)
mysql57-server-5.7.27          Multithreaded SQL database (server)
mysql80-server-8.0.17          Multithreaded SQL database (server)
...

Disponemos de las versiones 5.5, 5.6, 5.7 y 8.0 de MySQL, así que puedes instalar la que más convenga a tus necesidades. En este tutorial optaremos por MySQL 8.0, pero el proceso es similar para las otras versiones. Elegiremos el paquete mysql80-server que instalaremos con pkg:

$ sudo pkg install -y mysql80-server

Tras descargar e instalar el paquete principal y todas sus dependencias, se crea el nuevo servicio mysql_server en FreeBSD 12.1, servicio que no está iniciado ni habilitado.

Si queremos que MySQL Server inicie automáticamente en cada arranque de FreeBSD 12.1 lo activaremos con la opción enable de service:

$ sudo service mysql-server enable

Y para iniciar el servicio por primera vez, usaremos la opción start:

$ sudo service mysql-server start

El servicio quedará listo para trabajar. Podemos comprobar en cualquier momento el estado de este servicio con la opción status de service:

$ sudo service mysql-server status
mysql is running as pid 2324.

Cómo instalar el cliente de MySQL en FreeBSD 12.1

Si has instalado el servidor, entonces también tienes instalado el cliente de MySQL Server, ya que se trata de una de las dependencias.

Pero si lo que quieres es únicamente instalar el cliente de MySQL en FreeBSD 12.1, el paquete que necesitas es uno de los siguientes:

$ pkg search ^mysql |grep -i client
mysql55-client-5.5.62_3        Multithreaded SQL database (client)
mysql56-client-5.6.45          Multithreaded SQL database (client)
mysql57-client-5.7.27          Multithreaded SQL database (client)
mysql80-client-8.0.17          Multithreaded SQL database (client)

Por ejemplo, si quieres instalar el cliente de MySQL 8.0 deberías instalar el paquete mysql80-client con pkg:

$ sudo pkg install -y mysql80-client

Cómo configurar MySQL en FreeBSD 12.1

Antes de configurar MySQL en FreeBSD 12.1 debemos saber que el usuario root no tiene contraseña, por lo que cualquier usuario del sistema podría acceder al servicio con el comando mysql -u root:

como instalar mysql en freebsd 12.1

Al iniciar sesión es buena idea aprovechar para asignar una contraseña para el usuario root:

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

Salimos del cliente, no sin antes refrescar la tabla de permisos:

> flush privileges;
> exit

Ahora será necesario usar contraseña para poder iniciar sesión:

$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Los plugins de autenticación de usuario

Como novedad MySQL 8.0 usa por defecto el moderno plugin de autenticación caching_sha2_password, que es más seguro que el anterior mysql_native_password, pero no es compatible.

Siempre que uses clientes y conectores preparados para este plugin no habrá problema, pero son muchos los clientes, conectores y librerías que no lo usan.

Puedes solucionar esto de dos formas:

  1. Creando los usuarios que puedan encontrarse con este problema con el plugin mysql_native_password.
  2. Cambiando el plugin por defecto de MySQL Server 8.0 a mysql_native_password.

Crear un usuario indicando el plugin es fácil:

> create user usuario@localhost identified with mysql_native_password by 'XXXXXXXX';

Sin embargo, para cambiar el plugin de autenticación por defecto debemos cambiar la configuración del servicio, editando el archivo my.cnf:

$ sudo nano /usr/local/etc/mysql/my.cnf

En la sección mysqld habrá que añadir la directiva default_authentication_plugin con el valor del plugin que queremos usar por defecto:

...
[mysqld]
...
default_authentication_plugin   = mysql_native_password
...

Guardados los cambios, será necesario reiniciar el servicio mysql-server:

$ sudo service mysql-server restart

Cualquier nuevo usuario que se cree a partir de ahora tendrá asignado el plugin por defecto.

Cómo cambiar el plugin de autenticación de un usuario

Si necesitas cambiar el plugin de algún usuario anterior, puedes hacerlo, pero deberás reasignar la contraseña, ya que la contraseña como tal no se guarda en el sistema, sino un hash que corresponde al plugin usado. Si cambias sólo el plugin, el hash almacenado no corresponderá.

> alter user usuario@localhost identified with mysql_native_password by 'XXXXXXXX';

Cómo crear un nuevo usuario administrador

Es interesante disponer de un usuario con capacidades de administración alternativo a root, incluso con capacidad de acceso remoto:

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

Si le asignas el plugin mysql_native_password (si no es el plugin por defecto) podrás acceder al servicio desde cualquier tipo de cliente.

Al no indicar @localhost, este usuario podrá acceder remotamente.

Una vez creado el usuario, hay que asignarle los privilegios:

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

Este usuario podrá crear y modificar bases de datos, usuarios y privilegios. Sólo queda actualizar la tabla de permisos y salir del cliente.

> flush privileges;
> exit

Acceso remoto

Para poder acceder remotamente a MySQL Server en FreeBSD 12.1 es necesario ajustar la configuración, ya que el acceso está deshabilitado por defecto.

Editaremos my.cnf:

$ sudo nano /usr/local/etc/mysql/my.cnf

Y buscamos la directiva bind-address:

...
bind-address                    = 127.0.0.1
...

El valor actual sólo permite conexiones locales. Podemos especificar la dirección IP de la interfaz de red desde la que permitir conexiones, el valor 0.0.0.0 para permitir conexiones desde cualquier lugar o, lo más fácil, desactivar la directiva:

...
#bind-address                    = 127.0.0.1
...

Este cambio equivale a haber asignado el valor 0.0.0.0.

Guardados los cambios hay que reiniciar el servicio:

$ sudo service mysql-server restart

Ahora es posible conectar desde otra máquina, por ejemplo con el cliente de consola mysql, indicando la dirección de nuestro servidor FreeBSD 12.1:

como instalar y configurar mysql en freebsd 12.1

En este caso hemos logrado conectar desde otro sistema usando un cliente de MariaDB, ya que el usuario con el que accedemos utiliza el plugin de autenticación compatible mysql_native_password.

Conclusión

Ya has visto qué fácil es instalar y configurar MySQL Server en FreeBSD 12.1, un trabajo de apenas unos minutos. Ahora podrás realizar tus propios desarrollos o crear la plataforma de soporte para aplicaciones mayores, pero recuerda comprobar los requisitos de autenticación para no tener problemas de plugins.

En caso de dudas, preguntas, sugerencias, notificaciones, etc. un comentario siempre es bien recibido.

¡Apoya este sitio!

Y si gracias a esta guía de instalación y configuración de MySQL Server en FreeBSD 12.1 has conseguido montar el servicio en tu servidor o VPS FreeBSD y quieres agradecérnoslo, cualquier mínima contribución al mantenimiento de este sitio y creación de más guías y tutoriales de FreeBSD 12.1 y MySQL ayuda mucho. ¡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