Cómo instalar MySQL en FreeBSD 11

En este artículo veremos cómo instalar MySQL Server en FreeBSD 11 paso a paso, de modo que puedas trabajar con este afamadísimo y potente motor de bases de datos relacionales sobre tu servidor o VPS FreeBSD.

Antes de instalar MySQL en FreeBSD 11

Si quieres seguir los pasos de esta guía de instalación de MySQL en FreeBSD 11 tan sólo necesitarás cumplir lo siguiente:

Cómo instalar MySQL en FreeBSD 11

Vamos a instalar MySQL Server en FreeBSD 11 desde los repositorios del sistema, por lo que sería conveniente actualizar su información antes de empezar:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg update
~$ sudo pkg update
~$ sudo pkg update

Los repositorios de FreeBSD 11 incluyen revisiones muy actualizadas de varias versiones de MySQL, como podemos comprobar si realizamos una búsqueda entre los paquetes disponibles:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ pkg search ^mysql |grep -i server
..
mysql55-server-5.5.62_3 Multithreaded SQL database (server)
mysql56-server-5.6.50 Multithreaded SQL database (server)
mysql57-server-5.7.32 Multithreaded SQL database (server)
mysql80-server-8.0.22_1 Multithreaded SQL database (server)
...
~$ pkg search ^mysql |grep -i server .. mysql55-server-5.5.62_3 Multithreaded SQL database (server) mysql56-server-5.6.50 Multithreaded SQL database (server) mysql57-server-5.7.32 Multithreaded SQL database (server) mysql80-server-8.0.22_1 Multithreaded SQL database (server) ...
~$ pkg search ^mysql |grep -i server
..
mysql55-server-5.5.62_3        Multithreaded SQL database (server)
mysql56-server-5.6.50          Multithreaded SQL database (server)
mysql57-server-5.7.32          Multithreaded SQL database (server)
mysql80-server-8.0.22_1        Multithreaded SQL database (server)
...

En este artículo instalaremos MySQL Server 8.0, ya que suele ser la versión más utilizada en FreeBSD 11. Por tanto, el paquete que necesitamos es mysql80-server, que instalamos con el comando pkg:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg install -y mysql80-server
~$ sudo pkg install -y mysql80-server
~$ sudo pkg install -y mysql80-server

Al terminar la descarga e instalación de los paquetes de MySQL se crea un nuevo servicio en FreeBSD 11, el servicio mysql-server, que no queda en ejecución ni habilitado para su arranque automático con el sistema.

Por ello habilitaremos MySQL Server manualmente, editando el archivo /etc/rc.conf:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /etc/rc.conf
~$ sudo nano /etc/rc.conf
~$ sudo nano /etc/rc.conf

Y añadimos al final del archivo la siguiente línea:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
mysql_enable="YES"
... mysql_enable="YES"
...
mysql_enable="YES"

Guardamos el archivo y arrancamos por primera vez el servicio:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mysql-server start
~$ sudo service mysql-server start
~$ sudo service mysql-server start

Podemos comprobar en cualquier momento el estado de MySQL Server con el comando

sudo service mysql-server status
sudo service mysql-server status:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mysql-server status
mysql is running as pid 2165.
~$ sudo service mysql-server status mysql is running as pid 2165.
~$ sudo service mysql-server status
mysql is running as pid 2165.

como instalar mysql en freebsd 11

Instalar el cliente de MySQL en FreeBSD 11

Quizás sólo te interese instalar el cliente de MySQL en FreeBSD 11 para trabajar remotamente con otros servidores, por ejemplo. En ese caso podemos buscar las versiones disponibles:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg search ^mysql |grep -i client
mysql55-client-5.5.62_3 Multithreaded SQL database (client)
mysql56-client-5.6.50 Multithreaded SQL database (client)
mysql57-client-5.7.32 Multithreaded SQL database (client)
mysql80-client-8.0.22_1 Multithreaded SQL database (client)
~$ sudo pkg search ^mysql |grep -i client mysql55-client-5.5.62_3 Multithreaded SQL database (client) mysql56-client-5.6.50 Multithreaded SQL database (client) mysql57-client-5.7.32 Multithreaded SQL database (client) mysql80-client-8.0.22_1 Multithreaded SQL database (client)
~$ sudo pkg search ^mysql |grep -i client
mysql55-client-5.5.62_3        Multithreaded SQL database (client)
mysql56-client-5.6.50          Multithreaded SQL database (client)
mysql57-client-5.7.32          Multithreaded SQL database (client)
mysql80-client-8.0.22_1        Multithreaded SQL database (client)

Seleccionaremos aquella que nos interese y la instalaremos con pkg:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo pkg install -y mysql80-client
~$ sudo pkg install -y mysql80-client
~$ sudo pkg install -y mysql80-client

Si ya has instalado MySQL Server no necesitas instalar el cliente, ya que este forma parte de las dependencias del servicio.

Cómo configurar MySQL en FreeBSD 11

Para configurar MySQL Server en FreeBSD 11 hay que saber que sus archivos de configuración se encuentran bajo la ruta /usr/local/etc/mysql/, siendo el archivo principal my.cnf.

Después de cada ajuste será necesario reiniciar el servicio:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mysql-server restart
~$ sudo service mysql-server restart
~$ sudo service mysql-server restart

Contraseña de root

Inicialmente el usuario root de MySQL Server en FreeBSD 11 no dispone de contraseña, por lo que bastará iniciar sesión con el cliente de consola mysql sin indicarla para acceder al servicio:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql -u root
~$ mysql -u root
~$ mysql -u root

configurar mysql server en freebsd 11

Casi con toda seguridad querrás asignar una contraseña para root, por lo que una vez iniciada la sesión podremos establecerla:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> alter user root@localhost identified by 'XXXXXXXX';
> alter user root@localhost identified by 'XXXXXXXX';
> alter user root@localhost identified by 'XXXXXXXX';

Tras crear la contraseña es interesante refrescar las tablas de permisos de MySQL:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> flush privileges;
> flush privileges;
> flush privileges;

Ya podemos cerrar sesión para regresar a la línea de comandos:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> exit
> exit
> exit

Ahora, al intentar conectar de nuevo sin contraseña veremos que no es posible:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
~$ mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
~$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Tendremos que usar el argumento -p para que se nos solicite contraseña y así poder facilitarla:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.22 Source distribution
...
root@localhost [(none)]>
~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 16 Server version: 8.0.22 Source distribution ... root@localhost [(none)]>
~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.22 Source distribution
...
root@localhost [(none)]>

Ya tenemos protegida la cuenta de root.

Crear usuarios

Normalmente es interesante trabajar con algún usuario distinto a root, sobre todo si vamos a acceder remotamente. Podemos crear un usuario con capacidades de acceso remoto indicando un nombre simple, sin dominio especificado tras un carácter @.

Por ejemplo, un usuario con nombre chacho puede conectar desde cualquier otro sistema, pero un usuario llamado chacho@localhost sólo podría conectar localmente:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> create user chacho identified with mysql_native_password by 'XXXXXXXX';
> create user chacho identified with mysql_native_password by 'XXXXXXXX';
> create user chacho identified with mysql_native_password by 'XXXXXXXX';

Además de crear el usuario habrá que concenderle permisos. Para este nuevo usuario vamos a conceder permisos sobre todas las bases de datos con capacidad de otorgar permisos sobre otros usuarios a su vez:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
> grant all privileges on *.* to chacho with grant option;
> grant all privileges on *.* to chacho with grant option;
> grant all privileges on *.* to chacho with grant option;

Acceso remoto a MySQL en FreeBSD 11

Por defecto la configuración de MySQL en FreeBSD 11 no permite el acceso remoto, así que tendremos que editar my.cnf para realizar el ajuste necesario:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo nano /usr/local/etc/mysql/my.cnf
~$ sudo nano /usr/local/etc/mysql/my.cnf
~$ sudo nano /usr/local/etc/mysql/my.cnf

Buscamos la directiva bind-address:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
bind-address = 127.0.0.1
...
... bind-address = 127.0.0.1 ...
...
bind-address                    = 127.0.0.1
...

Vemos que la única dirección de conexión permitida es la máquina local. Bastará con desactivar esta directiva insertando un carácter # al inicio de línea para permitir conexiones desde cualquier sistema en red:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
#bind-address = 127.0.0.1
...
... #bind-address = 127.0.0.1 ...
...
#bind-address                    = 127.0.0.1
...

Guardamos el archivo y reiniciamos el servicio:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ sudo service mysql-server restart
~$ sudo service mysql-server restart
~$ sudo service mysql-server restart

Ahora podemos conectar desde otro sistema con un cliente como mysql, especificando con el parámetro –host la dirección del servidor FreeBSD 11 en el que corre el servicio MySQL Server, además de los parámetros de usuario y solicitud de contraseña:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
~$ mysql --host freebsd11.local.lan -u chacho -p
~$ mysql --host freebsd11.local.lan -u chacho -p
~$ mysql --host freebsd11.local.lan -u chacho -p

mysql server en freebsd 11

De esta forma podemos trabajar remotamente sobre el servicio que acabamos de instalar y configurar.

Conclusión

Así de sencillo es instalar MySQL Server en FreeBSD 11, por lo que no tienes excusa para disfrutar de las últimas versiones de este motor de bases de datos, ya sea para tus propios desarrollos o para soporte de otras aplicaciones.

¡Apoya comoinstalar.me!

¿Ya puedes trabajar con bases de datos en tu sistema gracias a este breve tutorial de instalación y configuración? En ese caso, si quieres agradecérnoslo colaborando con el mantenimiento de este sitio y la creación de más y mejores tutoriales puedes hacerlo dejando 1 $ de propina con PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario