Instalación de MySQL 8 en FreeBSD: Guía Paso a Paso

Domina la instalación de MySQL en tu servidor con nuestra guía paso a paso. Aprende cómo configurar y optimizar MySQL en tu entorno de FreeBSD. Descubre las mejores prácticas para asegurar un rendimiento óptimo y una gestión eficiente de tu base de datos.

InicioBlogMySQL en FreeBSD
jue., 4 ago. 2022
Aleksander
Instalar servidor MySql 8.0 en FreeBSD

Si eres un entusiasta de la administración de bases de datos o estás buscando una solución confiable y potente para almacenar y gestionar tus datos en tu servidor FreeBSD, estás en el lugar adecuado. En este artículo, te proporcionaremos una explicación detallada y paso a paso de cómo instalar MySQL 8 en tu sistema operativo FreeBSD, aprovechando al máximo todas sus características y beneficios.


MySQL es uno de los sistemas de gestión de bases de datos más populares y ampliamente utilizados en el mundo del desarrollo web y la administración de sistemas. Con su capacidad para manejar grandes volúmenes de datos de manera eficiente y su amplio conjunto de funciones, MySQL se ha convertido en una opción de confianza para empresas y desarrolladores de todo el mundo.

En esta guía, te acompañaremos en el proceso de instalación de MySQL 8 en tu servidor FreeBSD, teniendo en cuenta los aspectos importantes que debes considerar para garantizar una instalación exitosa. Te proporcionaremos instrucciones claras y sencillas, junto con consejos útiles y mejores prácticas para optimizar el rendimiento y la seguridad de tu base de datos.

Estamos emocionados de compartir contigo esta valiosa información que te ayudará a dar tus primeros pasos con MySQL 8 en FreeBSD. ¡Así que sin más preámbulos, comencemos con el fascinante mundo de MySQL y su instalación en tu sistema FreeBSD!

Paso previo para la instalación de mysql.

Nota: Antes de comenzar con la instalación, asegúrate de tener acceso de administrador en tu servidor FreeBSD y de contar con una conexión a Internet estable.

Configurando la colección de ports:

En este método, la colección de puertos debe instalarse primero si aún no están instalados. Por defecto, la colección de puertos se almacena como un subdirectorio de /usr/ports. Ejecuta el siguiente comando para verificar si el directorio /usr/ports existe:

$ ls /usr/ports

Si no tienes instalada la colección de puertos en tu sistema FreeBSD, puedes seguir estos pasos para instalarla:

1. Actualiza los archivos de índice de los puertos ejecutando el siguiente comando:

$ portsnap fetch

2. Una vez que la descarga esté completa, descomprime los archivos ejecutando el siguiente comando:

$ portsnap extract

3. Después de la extracción, actualiza los puertos a la última versión ejecutando el siguiente comando::

$ portsnap update

Una vez completados estos pasos, la colección de puertos estará instalada y podrás proceder con la instalación específica del port que necesites, como MySQL 8.0 en este caso. A continuación, verifica si los puertos del servidor y cliente de MySQL existen en la colección de puertos. Este comando buscará los directorios específicos /usr/ports/databases/mysql80-server y /usr/ports/databases/mysql80-client.

$ ls /usr/ports/databases | grep -E 'mysql(80-)?(server|client)'

Ten en cuenta que los números de versión utilizados en los nombres de los directorios (mysql80-server y mysql80-client) pueden variar según la versión específica de MySQL disponible en la colección de puertos.

...
/usr/ports/databases/mysql80-client:
Makefile	pkg-message	pkg-plist

/usr/ports/databases/mysql80-server:
Makefile	distinfo	files		pkg-descr	pkg-plist

Una vez que hayas instalado los ports necesarios, podrás proceder a instalar MySQL 8 en tu sistema.

Instalar MySQL 8

Navega al subdirectorio de MySQL 8: Utiliza la línea de comandos para dirigirte al subdirectorio de MySQL 8 en los puertos previamente instalados. Una vez que estés en el directorio adecuado, ejecuta el comando "make install clean" para iniciar la instalación de MySQL 8. Este comando compilará y configurará los archivos necesarios para la instalación del servidor MySQL en tu sistema.

$ cd /usr/ports/databases/mysql80-server
$ make install clean
pantalla de instalacion mysql8

Durante la compilación y configuración, podrás ver en la salida del comando el progreso de la instalación. Verás mensajes relacionados con los archivos que se están instalando y los scripts que se están ejecutando. Asegúrate de revisar cualquier mensaje de advertencia o información importante que pueda aparecer.

Después de la compilación, aparecerá la siguiente salida en la terminal:

...
===> Creating homedir(s)
There is no initial password for first time use of MySQL.
Keep in mind to reset it to a secure password.

MySQL80 has a default /usr/local/etc/mysql/my.cnf,
remember to replace it with your own
or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf.

===> SECURITY REPORT: 
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/lib/mysql/libmysqlrouter_io_component.so.1
/usr/local/lib/mysql/mysqlrouter/http_server.so
/usr/local/lib/mysql/plugin/group_replication.so
/usr/local/libexec/mysqld
/usr/local/lib/mysql/libmysqlharness.so.1

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage: 
https://www.mysql.com/

Nota: FreeBSD pkg incluye un mecanismo incorporado para detectar cualquier vulnerabilidad conocida en el software instalado en el sistema. Este mecanismo se llama "pkg audit" y te permite verificar si existen problemas de seguridad conocidos en los paquetes instalados.

Para utilizar pkg audit, simplemente ejecuta el siguiente comando en la terminal:

$ pkg audit -F
Fetching vuln.xml.xz: 100%    1 MiB   1.0MB/s    00:01     
0 problem(s) in the installed packages found.

Ejecutando MySQL

A continuación, ejecutarás el siguiente comando, el cual agregará el servicio de MySQL a /etc/rc.conf

$ sysrc mysql_enable=yes

Inicia el servicio de MySQL: En FreeBSD, puedes iniciar el servicio de MySQL ejecutando el siguiente comando:

$ service mysql-server start

Verifica el estado del servicio: Para comprobar que MySQL se esté ejecutando correctamente, puedes utilizar el siguiente comando:

$ service mysql-server status
mysql is running as pid 64569.

Garantizando la seguridad de MySQL

Una vez que se haya completado la instalación, es importante configurar la seguridad de tu servidor MySQL. Puedes ejecutar el comando "mysql_secure_installation" para iniciar el proceso de configuración de seguridad. Este script te guiará a través de varios pasos para mejorar la seguridad de tu instalación de MySQL, como establecer una contraseña segura para el usuario root, eliminar usuarios anónimos y restringir el acceso remoto, entre otras medidas.

$ mysql_secure_installation
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

El script te preguntará sobre la validación del componente de contraseña. Te pedirá que decidas si deseas aplicar la complejidad de las contraseñas. Escribe Y y presiona Enter para habilitarlo, o cualquier otra tecla para ignorarlo.

Validación del componente de la contraseña

Si decides aceptar la Política de Validación de Contraseñas, se te pedirá que indiques el nivel de complejidad deseado. Elige el nivel y presiona Enter para continuar con la configuración.

...
There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Ahora, establecerás la contraseña para el usuario root de MySQL. La contraseña debe contener una letra mayúscula, una letra minúscula, un número y un carácter especial.

...
Please set the password for root here.

New password: 

Re-enter new password: 

Deberás eliminar los usuarios anónimos, prohibir el inicio de sesión remoto como root, eliminar las bases de datos de prueba y recargar las tablas de privilegios para aplicar los cambios.

...
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y 
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

MySQL 8 ha sido instalado y está en funcionamiento en FreeBSD​.

Ajustar el rendimiento de Mysql:

Es esencial optimizar la configuración de MySQL para garantizar un rendimiento eficiente y evitar posibles ralentizaciones. Ignorar esta tarea podría desencadenar una disminución significativa en el desempeño del sistema y afectar adversamente la experiencia del usuario.

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


#basado en innodb
innodb_buffer_pool_size = 1G         # establecer al 50% de la RAM (considerando 2 GB de RAM)
innodb_log_file_size = 256M          # ajustar a un cuarto del tamaño del buffer pool
innodb_log_buffer_size = 32M         # adaptar para transacciones de tamaño moderado
innodb_flush_log_at_trx_commit = 0   # aumentará la velocidad de escritura, pero haga copias de seguridad/replicación para garantizar la fiabilidad
innodb_flush_method = O_DIRECT       # evitar el doble almacenamiento en caché al escribir en disco
#basado en myisam
key_buffer_size = 512M               # ajustar según el tamaño de los índices MyISAM
myisam_sort_buffer_size = 64M        # asignar memoria para operaciones de clasificación MyISAM
read_buffer_size = 8M                # tamaño del búfer de lectura para MyISAM
write_buffer_size = 8M               # tamaño del búfer de escritura para MyISAM
#ajustes adicionales
max_connections = 100                # número máximo de conexiones simultáneas permitidas
query_cache_size = 64M               # tamaño del caché de consultas para optimizar consultas repetitivas
tmp_table_size = 64M                 # tamaño máximo para tablas temporales en memoria
max_heap_table_size = 64M            # tamaño máximo para tablas temporales en memoria creadas por el optimizador
thread_cache_size = 4                # número de hilos en la caché para manejar conexiones

Verificando la instalación

Para verificar la instalación, puedes iniciar sesión como root y verificar la versión de la base de datos utilizando el siguiente comando:

$ mysqladmin -u root -p version
Enter password: 
mysqladmin  Ver 8.0.32 for FreeBSD12.4 on amd64 (Source distribution)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.32
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/tmp/mysql.sock
Uptime:			19 hours 26 min 14 sec

Threads: 2  Questions: 18  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.000

¡Felicitaciones! Has instalado y configurado correctamente MySQL 8 en tu sistema FreeBSD.
No dudes en explorar la documentación oficial de MySQL para obtener más información sobre cómo utilizar y administrar MySQL en tu entorno de desarrollo.



SUBSCRIBE

Join my mailing list to receive updates on the latest blog posts and other things.