Cómo instalar MySQL en FreeBSD 12

En esta entrada mostraremos cómo instalar MySQL Server en FreeBSD 12 paso a paso, ya sea MySQL 8.0 ó MySQL 5.7,  para disponer del motor de bases de datos de código abierto más popular del mundo. Al final de esta guía tendrás el servicio en funcionamiento en tu servidor o VPS FreeBSD, con tu propio usuario administrador y acceso remoto activado o desactivado, según tus preferencias.

Antes de instalar MySQL en FreeBSD 12

Si tu intención es seguir esta sencilla guía de instalación de MySQL en FreeBSD 12 deberías tener en cuenta que necesitas unos mínimos requisitos:

  • Una versión actualizada de FreeBSD 12.
  • Un usuario con permisos de sudo o el propio usuario root.
  • Conexión a Internet.

No hay muchas sorpresas aquí, es lo que cabe esperar a la hora de llevar a cabo una tarea de este tipo. Así que vamos a abrir un terminal de línea de comandos y empecemos el trabajo.

Qué versión de MySQL Server instalar en FreeBSD 12

Para instalar MySQL en FreeBSD 12 vamos a usar las versiones disponibles en el propio repositorio del sistema. Y hablo de versiones en plural porque fácilmente puedes comprobar que dispones de distintas posibilidades. Buscamos el paquete mysql-server con la opción search del comando pkg y esto es lo que obtenemos:

$ pkg search mysql |grep -i "(server)"
mysql55-server-5.5.62_3        Multithreaded SQL database (server)
mysql56-server-5.6.51          Multithreaded SQL database (server)
mysql57-server-5.7.33          Multithreaded SQL database (server)
mysql80-server-8.0.23          Multithreaded SQL database (server)

Además de MySQL 8.0, en esta guía también cubiremos la instalación de MySQL 5.7 en FreeBSD 12, ya que son muchos los paquetes procedentes del repositorio del sistema que tienen precisamente esta versión como dependencia.

Cómo instalar MySQL 8.0 en FreeBSD 12

Para instalar MySQL Server 8.0 en FreeBSD 12 el paquete que necesitamos es mysql80-server, que instalamos con pkg:

$ sudo pkg install -y mysql80-server

El paquete que contiene el cliente de MySQL 8.0 es mysql80-client, pero si has instalado el servidor se instalará como dependencia también el cliente. Sólo necesitarás instalarlo si no instalas el servicio pero necesitas el cliente para trabajar remotamente con otro servicio en red.

Cómo instalar MySQL 5.7 en FreeBSD 12

Si por razones de compatibilidad debemos instalar MySQL Server 5.7 en FreeBSD 12, usaremos pkg para instalar el paquete mysql57-server:

$ sudo pkg install -y mysql57-server

Si te preguntas cómo instalar el cliente de MySQL 5.7 en FreeBSD debes saber que el paquete mysql57-client es una dependencia del paquete del servidor, por lo que se instala automáticamente.

Notas sobre la instalación de MySQL en FreeBSD 12

Cosas que debes saber una vez que MySQL se instala en nuestro sistema FreeBSD 12:

  • Se crean el usuario y el grupo mysql con los que funciona el servicio.
  • Si estamos actualizando MySQL sobre una versión anterior, debemos ejecutar el script mysql_upgrade.
  • El nombre del servicio que usaremos para controlarlo a través del comando service es mysql-server.
  • MySQL Server no queda activado ni en funcionamiento tras su instalación.

De esto se desprende que necesitamos realizar algunas acciones manuales.

Cómo activar e iniciar el servicio MySQL en FreeBSD 12

La primera tarea a realizar es la activación de MySQL para que se inicie cada vez que arranque nuestro sistema FreeBSD 12. Para ello emplearemos la opción enable del comando service:

$ sudo service mysql-server enable
mysql enabled in /etc/rc.conf

Además del inicio automático, ya podemos usar las opciones normales de service (en lugar de sus equivalentes que comienzan por one cuando el servicio no está activado).

Y precisamente haremos uso de una de estas opciones para iniciar MySQL Server:

$ sudo service mysql-server start
Starting mysql.

Ya tenemos el servicio mysql-server en funcionamiento listo para aceptar conexiones, como podemos comprobar con la opción status de service:

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

Contraseña por defecto de root para MySQL en FreeBSD 12

MySQL 8.0

En este caso el usuario root del servicio inicialmente no tiene contraseña, por lo que por seguridad deberíamos crearla conectando al servicio con el cliente de consola mysql:

~$ mysql -u root

como instalar mysql en freebsd 12

Crearemos la contraseña mediante el siguiente comando:

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

Refrescaremos la tabla de permisos de MySQL:

> flush privileges;

Y cerramos la conexión:

> exit

Ahora, para poder acceder como root es necesario usar el parámetro -p para que se nos solicite la contraseña que hemos creado:

~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.23 Source distribution
...
root@localhost [(none)]>

MySQL 5.7

La primera vez que inicia el servicio mysql-server se crea una contraseña temporal para root que se guarda en /root/.mysql_secret. Vistos los permisos de esta contraseña inicial, sólo root o usuarios con permisos de root pueden conocerla:

$ sudo cat /root/.mysql_secret
# Password set for user 'root@localhost' at ...
LWbYeteiCo52

No podremos trabajar con ninguna base de datos hasta que cambiemos esta contraseña inicial de MySQL, por lo que conectamos con el cliente de consola mysql identificándonos como root y proporcionando la contraseña:

~$ mysql -u root -p
Enter password:

Introducimos la contraseña temporal y lo único que nos permitirá el cliente es cambiar la contraseña:

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

Ya podemos cerrar el cliente, refrescando la tabla de permisos antes de salir:

> flush privileges;
> exit

A partir de ahora usaremos la nueva contraseña cada vez que iniciemos sesión con root.

Los plugins de autenticación de usuario en MySQL 8

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 nuevo plugin no habrá problema, pero algunos clientes, conectores y librerías 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 ya existente, 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

Aparte de root podemos crear un nuevo usuario para administrar MySQL, pero sin eliminar la posibilidad de acceder remotamente si lo consideras oportuno.

Iniciamos sesión con root y creamos el nuevo usuario (en el caso de MySQL 8 ten en cuenta lo expuesto anteriormente sobre el plugin de autenticación por defecto):

> create user TU_USUARIO identified by 'XXXXXXXX';

Concedemos los privilegios administrativos al nuevo usuario:

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

Y ya podemos terminar la sesión:

> flush privileges;
> exit

A partir de este momento podemos usar este nuevo usuario para crear y gestionar nuevas bases de datos y usuarios.

Acceso remoto a MySQL en FreeBSD 12

Para acceder remotamente al servidor MySQL en FreeBSD 12 debemos previamente permitir las conexiones externas, ya que la configuración por defecto sólo permite conexiones locales.

Podemos cambiarlo editando el archivo principal de configuración de MySQL Server en FreeBSD 12, que es /usr/local/etc/mysql/my.cnf:

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

Buscaremos la directiva bind_address, que se ecuentra en la sección mysqld de este archivo:

...
[mysqld]
...
bind-address                    = 127.0.0.1
...

Tenemos dos opciones para modificar esta directiva. La primera pasa por cambiar el valor 127.0.0.1 para conexiones locales por el valor 0.0.0.0 que permite conexiones procedentes de cualquier lugar. La segunda opción es simplemente desactivar la directiva precediéndola con el carácter #:

#bind-address                    = 127.0.0.1

Guardados los cambios es necesario reiniciar el servicio para que tomen efecto:

$ sudo service mysql-server restart

Una vez reiniciado el servicio ya es posible conectar desde otra máquina con un cliente, ya sea gráfico o de consola, con nuestro nuevo usuario administrador.

Por ejemplo, en una máquina Windows creamos una nueva conexión en MySQL Workbench, proporcionando la dirección de nuestro servidor FreeBSD 12 y un usuario con acceso remoto:

instalar mysql en freebsd 12

Al probar la conexión se nos pide la contraseña de nuestro usuario:

acceso remoto a mysql en freebsd 12

 

Esto ya indica que existe conectividad, puesto que en caso de no estar permitido el acceso remoto obtendríamos un error de conexión como este:

permitir conexiones remotas de mysql en freebsd 12

Pero en este caso el acceso remoto está permitido y al introducir la contraseña y continuar obtenemos un mensaje de éxito de la prueba de conexión:

conexion remota mysql en freebsd 12

Esto significa que proporcionando los datos de conexión de forma conveniente a cualquier cliente de MySQL, ya sea gráfico, de consola, un conector, etc. las conexiones remotas son posibles.

Conclusión

Ya sabes cómo instalar MySQL en FreeBSD 12, por lo que puedes desarrollar tus propios sistemas o configurar bases de datos y usuarios para las aplicaciones que lo requieran. FreeBSD 12 te ofrece varias versiones de MySQL donde elegir, por lo que puedes elegir la más conveniente para tus necesidades.

Puedes dejarme un comentario si tienes alguna duda, pregunta o sugerencia.

¡Apoya comoinstalar.me!

¿Te ha parecido útil esta guía de MySQL en FreeBSD 12? ¿Te gustaría disponer de más guías como estas? Puedes ayudarnos a mantener este sitio en línea a través de una mínima donación dejando una propina a partir de 1 $ desde PayPal:

¡Gracias!

Valora esta entrada

3.7/5 - (3 votos)

Deja un comentario