Capítulo 1. Introducción a MySQL 8

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

MySQL es un sistema de gestión de bases de datos relacionales de código abierto muy popular y ampliamente utilizado. Ofrece varias ediciones y versiones adaptadas a las diversas necesidades de los usuarios. En este libro tratamos ampliamente las distintas ediciones y versiones de MySQL, proporcionando una visión completa de sus características y capacidades. A lo largo de este libro, te permitiremos tomar decisiones informadas en función de los requisitos específicos de tu proyecto y de tus necesidades de gestión de bases de datos.

En este capítulo, aprenderás sobre las numerosas versiones y ediciones de MySQL, incluyendo la Edición Comunidad, la Edición Empresa y Percona Server. Conocerás las características y capacidades de cada edición, como la compatibilidad con plataformas, los motores de almacenamiento, el rendimiento, la escalabilidad, la capacidad de gestión y la seguridad. Además, aprenderás sobre el archivo de configuración MySQL my.cnf y su importancia para optimizar el comportamiento del servidor. Por último, estarás preparado para tomar decisiones informadas sobre la selección de la versión de MySQL más adecuada en función de tus necesidades específicas, presupuesto y requisitos técnicos.

Edición Comunitaria

La Edición Comunitaria de utiliza la Licencia Pública General de GNU (GPL), que permite al usuario acceder al código fuente y modificarlo. Es la edición más popular de MySQL y se utiliza ampliamente en diversas aplicaciones, como el desarrollo web, el comercio electrónico y el análisis de datos. La Edición Comunidad es adecuada para aplicaciones pequeñas y medianas que no requieren funciones y soporte avanzados, o para aplicaciones a gran escala con un equipo de administradores de bases de datos (DBA) muy cualificado.

Las principales características de la Edición Comunidad son las siguientes:

  • Es compatible con múltiples plataformas, como Windows, Linux y macOS. Además, puedes utilizarlo de forma agnóstica con Docker.

  • Compatibilidad con varios motores de almacenamiento, incluidos InnoDB y memoria.

  • Alto rendimiento, escalabilidad y fiabilidad.

  • Fácil de usar y mantener.

  • Compatibilidad con varios lenguajes de programación, como Java, PHP y Python.

Edición Empresa

La edición MySQL Enterprise de incluye una amplia gama de funciones avanzadas, herramientas de gestión y asistencia técnica, que permiten alcanzar los más altos niveles de escalabilidad, seguridad, fiabilidad y tiempo de actividad de MySQL. Esta edición minimiza los riesgos, costes y complejidades asociados al desarrollo, implementación y gestión de aplicaciones MySQL críticas para la empresa.

Entre las principales características de la Edición Empresa se incluyen las siguientes:

  • Seguridad de nivel empresarial, incluyendo encriptación, cortafuegos y auditoría

  • Opciones avanzadas de copia de seguridad y recuperación

  • Soporte 24/7 de expertos en MySQL

  • Grupo de hilos, integración con Active Directory, auditoría

  • Herramientas avanzadas de monitoreo y gestión

Para comparar ediciones, visita el sitio web de MySQL. Los clientes comerciales disfrutan de la flexibilidad de seleccionar entre varias ediciones personalizadas para satisfacer requisitos empresariales y técnicos específicos.

Servidor Percona para MySQL

Percona Server para MySQL es una bifurcación del popular sistema de gestión de bases de datos relacionales (RDBMS) de código abierto, MySQL. Está desarrollado y mantenido por Percona, proveedor líder de soluciones, servicios ysoporte de MySQL, MongoDB y PostgreSQL.

Percona Server para MySQL sustituye directamente a MySQL Community Edition y es una solución de código abierto lista para la producción con funciones de nivel empresarial. Los usuarios pueden aprovechar funcionalidades adicionales, como sólidas medidas de seguridad, completas herramientas de monitoreo y gestión, eficaces mecanismos de copia de seguridad y fiables funciones de alta disponibilidad (HA). Y lo que es más importante, optar por Percona Server para MySQL garantiza una transición sin problemas a un servidor de bases de datos más avanzado, sin incurrir en cuotas de software ni caer presa de la dependencia de un proveedor.

Fichero de configuración de MySQL

El archivo my.cnf (abreviatura de Configuración MySQL) es utilizado por MySQL para definir diversos ajustes y parámetros que afectan al comportamiento del servidor MySQL. Este archivo de configuración se encuentra normalmente en el directorio /etcen los sistemas basados en Linux o en el directorio de instalación en los sistemas Windows.

Este archivo se utiliza para establecer diversos parámetros, como la ubicación del directorio de datos de MySQL, la cantidad máxima de memoria que puede utilizar el servidor, el conjunto de caracteres que se utilizará para el almacenamiento de datos, etc. Estos ajustes pueden ser cruciales para el rendimiento y la seguridad de tu servidor MySQL.

El archivo utiliza un formato de texto sencillo y consta de varias secciones y directivas que definen el comportamiento del servidor MySQL. Puedes editar el archivo my.cnf utilizando un editor de texto, como Vim o GNU nano, para personalizar la configuración del servidor MySQL según tus necesidades. Sin embargo, ten cuidado al editar este archivo, ya que los cambios incorrectos pueden hacer que el servidor MySQL funcione mal o se vuelva inseguro.

A continuación se muestra un ejemplo de fichero de configuración MySQL que establece diversas opciones para el cliente y el servidor MySQL. Este ejemplo muestra una visión general de las distintas secciones y opciones de este archivo, aunque no es una lista exhaustiva de variables. Dependiendo de los requisitos de la aplicación y de la configuración del servidor, puede ser necesario ajustar las variables.

Consejo

El Manual de Referencia de MySQL 8.0 tiene una sección sobre las variables del sistema del servidor que cubre todas las variables, incluyendo sus descripciones y valores por defecto.

La sección client de mi.cnf contiene opciones de configuración para el cliente MySQL. Establece el puerto y el socket utilizados para conectarse al servidor MySQL:

[client]

port = 3306
socket = /var/run/mysqld/mysqld.sock

La sección mysqld de mi.cnf contiene opciones de configuración para el servidor MySQL. Establece la ubicación del archivo identificador de proceso (PID) y del socket, así como el puerto, el directorio base, el directorio de datos y el directorio temporal. También activa la opciónskip_external_locking, que permite operaciones más rápidas con las tablas, pero puede dar lugar a problemas de bloqueo (el bloqueo externo sólo afecta al acceso a las tablas MyISAM).

La configuración bind_address restringe las conexiones al servidor sólo a la máquina local, mientras que server_id asigna un ID único al servidor:

[mysqld]

pid_file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip_external_locking
bind_address = 127.0.0.1
server_id = 100

Los siguientes ajustes de my.cnf configuran el motor de almacenamiento InnoDB, que es el motor utilizado por defecto por MySQL. La opción innodb_buffer_pool_size establece el tamaño del buffer pool, que se utiliza para almacenar en caché los datos a los que se accede con frecuencia. La opción innodb_flush_log_at_trx_commit controla la frecuencia con la que se escriben los datos en el archivo de registro. Las opciones restantes se utilizan para configurar las opciones de E/S y bloqueo para InnoDB:

# InnoDB settings

innodb_buffer_pool_size = 512M
innodb_redo_log_capacity = 200M
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 60
innodb_read_io_threads = 4
innodb_write_io_threads = 4
innodb_io_capacity = 200

La siguiente opción activa el esquema de rendimiento, que proporciona métricas de rendimiento detalladas para las operaciones de MySQL:

# Performance schema

performance_schema = ON

Las siguientes opciones establecen varios ajustes generales de configuración para MySQL, como el tamaño de los búferes y la configuración de la caché. La opción key_buffer_size establece el tamaño del búfer de claves utilizado por el motor de almacenamiento MyISAM, mientras quemax_allowed_packet controla el tamaño máximo de los paquetes que puede enviar o recibir el servidor. Las opciones restantes se utilizan para configurar diversos tamaños de búfer utilizados por MySQL:

# General settings

key_buffer_size = 128M
max_allowed_packet = 64M
table_open_cache = 1024
sort_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 8M

Con MySQL 8, hay otro método disponible y preferido para configurar el servidor MySQL: el uso de SET PERSIST para crear un archivo de configuración en el directorio de datos. Los DBA aprecian mucho esta solución cuando no tienen acceso al sistema de archivos. También permite hacer un seguimiento de los cambios, ya que se almacenan algunos metadatos.

Actualizaciones significativas en MySQL 8

Vamos a explorar las últimas mejoras e innovaciones de MySQL profundizando en las importantes actualizaciones de MySQL 8, en comparación con MySQL 5.7:

Diccionario de datos transaccionales (TDD)

El nuevo TDD mejora significativamente el almacenamiento y la gestión de la información sobre los objetos de la base de datos. Este cambio mejora la integridad, consistencia y fiabilidad de los datos, ya que InnoDB proporciona transacciones compatibles con ACID (que cumplen los principios de atomicidad, consistencia, aislamiento y durabilidad). Con el TDD, MySQL 8 centraliza los metadatos de los objetos en tablas del sistema dentro de InnoDB, garantizando que los cambios en el diccionario de datos sean transaccionales y duraderos. Esta transición de MyISAM a InnoDB para el diccionario de datos contribuye a la robustez y escalabilidad general de MySQL, soportando operaciones de base de datos de alto rendimiento al tiempo que garantiza la fiabilidad y consistencia de los datos.

Lenguaje de definición de datos atómicos

Las sentencias atómicas del lenguaje de definición de datos (DDL) se han introducido para mejorar la coherencia y fiabilidad de las operaciones DDL. Estas sentencias combinan las actualizaciones del diccionario de datos, las operaciones del motor de almacenamiento y las escrituras del registro binario asociadas a una operación DDL en una única transacción atómica. Cuando realizas una sentencia DDL, como crear, modificar o eliminar una tabla, todos los cambios relacionados se agrupan en una única transacción. Si falla alguna parte de la operación DDL, se deshace toda la transacción, lo que garantiza que la base de datos se mantiene en un estado coherente. Esta atomicidad de las sentencias DDL mejora la fiabilidad e integridad de los cambios de esquema en MySQL 8, facilitando la gestión y el mantenimiento de la estructura de la base de datos.

juego de caracteres utf8mb4

Efectivamente, el juego de caracteres por defecto se ha cambiado de Latin-1 a utf8mb4. Este cambio refleja el cambio hacia una mejor compatibilidad con los juegos de caracteres internacionales y la creciente demanda de codificación Unicode. UTF-8 es una codificación de ancho variable que puede representar una amplia gama de caracteres de varios idiomas y alfabetos, lo que la convierte en una opción por defecto más adecuada para las aplicaciones modernas con bases de usuarios diversas.

Índices invisibles

Se ha introducido la compatibilidad con los índices invisibles como mejora de la función. Los índices invisibles son índices que el optimizador de consultas no utiliza algenerar planes de ejecución de consultas. Permiten a los administradores probar el impacto de la eliminación de un índice sin eliminarlo realmente del esquema de la base de datos. Esta función es especialmente útil para optimizar el rendimiento y realizar pruebas.

Al hacer invisible un índice, puedes observar cómo se ve afectado el rendimiento de la consulta sin eliminar permanentemente el índice de la base de datos. Esta función permite saber si un índice es beneficioso o si puede eliminarse con seguridad para reducir la sobrecarga de almacenamiento y mantenimiento. Esta función ayuda a los administradores de bases de datos a tomar decisiones más informadas sobre la gestión de índices y las estrategias de optimización.

Clonar plug-in

El complemento clonar es una potente función que simplifica la configuración de la replicación de bases de datos. Crea una réplica exacta del directorio de datos de un servidor MySQL, lo que lo convierte en un método eficaz y rápido para establecer la replicación de un servidor donante a un servidor réplica. En lugar de los tradicionales y potencialmente complejos procedimientos de copia de seguridad y restauración, esta función permite a los administradores clonar fácilmente los datos del donante en la réplica, reduciendo significativamente el tiempo y el esfuerzo necesarios para configurar un entorno de replicación. Esta mejora agiliza las Implementaciones de replicación, minimiza el tiempo de inactividad y mejora la capacidad general de gestión y la fiabilidad en las configuraciones de replicación MySQL.

Filas calientes con NOWAIT y SKIP LOCKED

La función de filas calientes se ha mejorado con las opciones NOWAIT y SKIP LOCKED, aplicables principalmente a la sentencia SELECT dentro de escenarios de transacciones concurrentes. Cuando se utiliza con las cláusulas FOR UPDATE o FOR SHARE, NOWAIT garantiza que si otra sesión ya tiene un bloqueo sobre las filas a las que se está accediendo, MySQL devuelve un error inmediato en lugar de esperar a que se libere el bloqueo, reduciendo así la contención y los posibles bloqueos. A la inversa, SKIP LOCKED permite que una sentencia SELECT se salte las filas bloqueadas por otras transacciones, permitiendo el acceso no bloqueante a las filas y excluyendo las que estén bloqueadas por otras sesiones. Estas funciones mejoran las capacidades de gestión de la concurrencia y las transacciones de MySQL, sobre todo en situaciones de alta contención en el acceso a los datos.

Reutilización de sesión SSL

La reutilización de sesiones SSL es compatible con muchas implementaciones de la capa de sockets seguros (SSL)/Seguridad de la capa de transacciones (TLS), incluido OpenSSL, que se utiliza habitualmente en MySQL para proteger las conexiones a bases de datos. Esta función permite a clientes y servidores reutilizar los parámetros de sesión SSL/TLS para evitar la sobrecarga de renegociar una nueva sesión para cada conexión.

En MySQL 8, la reutilización de sesiones SSL está soportada por defecto, por lo que los clientes y servidores MySQL reutilizarán las sesiones SSL/TLS cuando sea apropiado. El ajuste de tiempo de espera de caché de sesión del lado del servidor (ssl_session_cache_timeout) se refiere a la duración durante la cual los parámetros de sesión SSL/TLS se almacenan en caché y se consideran para su reutilización. Cuando un cliente se vuelve a conectar al servidor dentro de este periodo de tiempo de espera, puede reutilizar los parámetros de sesión SSL/TLS existentes, ahorrando recursos computacionales y mejorando potencialmente el rendimiento de la conexión.

Variables persistentes del sistema

Ahora puedes persistir las variables dinámicas globales del servidor utilizando el comando SET PERSIST, que proporciona una alternativa más ágil a SET GLOBAL. Cuando se utiliza la palabra clave PERSIST, cualquier modificación de las variables del servidor no sólo se aplica instantáneamente, sino que también se registra en el archivo de opciones mysqld-auto.cnf, situado en el directorio de datos. Este archivo almacena los cambios en las variables, garantizando que se conserven incluso después de reiniciar el servidor. Esta característica simplifica la gestión de las configuraciones del servidor, ya que permite realizar ajustes persistentes que permanecen vigentes en todas las sesiones y reinicios del servidor, promoviendo una mayor coherencia y facilidad de administración en las Implementaciones de MySQL.

Gestión de grupos de recursos

Puedes crear y gestionar grupos de recursos, así como asignar subprocesos a grupos específicos. Esta función es especialmente valiosa cuando necesitas asignar recursos del servidor de forma eficiente entre diferentes cargas de trabajo o aplicaciones. Con los grupos de recursos, puedes definir y asignar recursos como CPU y E/S a varios grupos de subprocesos o sesiones en función de criterios como cuentas de usuario, aplicaciones o patrones de consulta. Este control detallado de la asignación de recursos garantiza que las cargas de trabajo críticas reciban los recursos necesarios, al tiempo que evita la contención de recursos y mejora el rendimiento y la estabilidad general del sistema.

Encriptación de la tabla

Puedes gestionar el cifrado de tablas de forma global definiendo y aplicando los valores predeterminados de cifrado. Puedes establecer políticas y valores predeterminados de encriptación a nivel de servidor, que afecten a la forma en que las tablas se encriptan por defecto en toda tu instancia MySQL, para tablas dentro del esquema, el tablespace general o todo el sistema MySQL. Esto garantiza que las tablas se cifren de forma coherente, simplificando la seguridad de los datos y los esfuerzos de cumplimiento. Esta función te permite definir la configuración de la encriptación, como los algoritmos de encriptación y las opciones de gestión de claves a nivel global, proporcionando un enfoque centralizado y estandarizado de la encriptación de datos dentro de tu base de datos MySQL.

Tareas automatizadas de actualización del servidor MySQL

La versión 8.0.16 de MySQL introdujo una mejora significativa en el proceso de actualización. El servidor MySQL ejecuta ahora automáticamente todas las tareas de actualización necesarias, incluida la actualización de las tablas del sistema y de los objetos de otros esquemas, como el esquema sys y los esquemas user, durante el siguiente arranque del servidor. Los usuarios ya no necesitan ejecutar manualmente la utilidad mysql_upgrade después de actualizar su servidor MySQL. Esta automatización simplifica el proceso de actualización, reduce la posibilidad de errores y garantiza que la base de datos se actualice correctamente a la nueva versión sin intervención manual.

Cuando no se especifica ninguna opción o cuando se utiliza --upgrade=AUTO, el servidor actualizará automáticamente los componentes que identifique como obsoletos.

Si se especifica --upgrade=NONE, el servidor se abstiene de actualizar nada. Sin embargo, saldrá con un error si el diccionario de datos requiere una actualización. No se permite ejecutar el servidor con un diccionario de datos obsoleto; el servidor exige una actualización o su finalización.

Cuando se utiliza --upgrade=MINIMAL, el servidor actualiza los componentes esenciales, como el diccionario de datos, PERFORMANCE_SCHEMA, y INFORMATION_SCHEMA, si es necesario. Es importante tener en cuenta que, tras actualizar con esta opción, puede que no sea posible iniciar la replicación de grupos. Esta limitación se debe a que no se actualizan las tablas del sistema cruciales para el funcionamiento interno de la replicación, y puede observarse una funcionalidad reducida en varias áreas.

Con --upgrade=FORCE, el servidor actualiza componentes cruciales como el diccionario de datos, PERFORMANCE_SCHEMA, y INFORMATION_SCHEMA según sea necesario. Además, actualiza forzosamente todos los demás componentes. Esta opción puede prolongar el tiempo de arranque del servidor, ya que éste comprueba meticulosamente todos los objetos de todos los esquemas.

Configuración personalizada de puertos TCP/IP para conexiones administrativas

Puedes configurar un puerto TCP/IP independiente específicamente para conexiones administrativas, aunque ya se haya alcanzado el límite de max_connections en el puerto primario. Esta función proporciona mayor flexibilidad y control sobre la forma en que se gestionan las tareas administrativas cuando el grupo de conexiones primario ya está totalmente utilizado. Al permitir un puerto administrativo dedicado, los administradores pueden garantizar un acceso ininterrumpido al servidor de base de datos para tareas críticas de gestión y solución de problemas, independientemente de las conexiones concurrentes en el puerto primario. Esta mejora aumenta la capacidad de gestión y la solidez de MySQL en escenarios de alto tráfico o con recursos limitados.

Bloqueo de seguridad

Un nuevo tipo de bloqueo de copia de seguridad permite realizar operaciones de lenguaje de manipulación de datos (DML) durante una copia de seguridad en línea, al tiempo que evita acciones que podrían provocar una instantánea incoherente.

Contador autoincrementado persistente

El valor máximo del contador de autoincremento persiste aunque se reinicie el servidor. El contador de autoincremento, que determina el siguiente valor de una columna autoincrementada, conservará su valor aunque se reinicie el servidor. En versiones anteriores de MySQL, el contador de autoincremento se restablecía a un valor utilizado y eliminado previamente al reiniciar el servidor, lo que podía dar lugar a problemas como errores de claves duplicadas o vacíos de datos inesperados. Esta mejora en MySQL 8.0.22 ayuda a garantizar la integridad y coherencia de los datos, al preservar el estado del contador de autoincremento en los reinicios del servidor.

Gestión mejorada del espacio de tablas InnoDB

La opción innodb_directories te permite especificar directorios para los archivos de tablespace InnoDB. Esta función te permite mover o restaurar archivos de tablespace a una nueva ubicación mientras el servidor MySQL está desconectado. Esta capacidad puede ser valiosa para gestionar el almacenamiento físico de los archivos del tablespace InnoDB y garantizar la disponibilidad e integridad de tu base de datos.

Configuración automatizada para servidores MySQL dedicados

Se ha introducido una nueva variable de sistema llamada innodb_dedicated_server. Por defecto, está desactivada. Cuando está activada, esta variable indica a InnoDB que configure automáticamente varias opciones en función de la disponibilidad de memoria detectada, optimizando el rendimiento del servidor MySQL para entornos de servidores dedicados.

Activar innodb_dedicated_server es beneficioso cuando tienes un servidor MySQL dedicado con amplios recursos de memoria disponibles. InnoDB hará ciertas suposiciones y ajustes, como aumentar el tamaño del buffer pool, para aprovechar la memoria disponible y mejorar el rendimiento. Esta función simplifica el proceso de configuración de los servidores MySQL dedicados, por lo que es más adecuada cuando MySQL tiene acceso exclusivo a los recursos del servidor. Sin embargo, es esencial revisar y ajustar la configuración automática si el perfil de memoria de tu servidor cambia significativamente o si tienes requisitos específicos de rendimiento.

Mejora de la gestión de las tablas temporales

Las tablas temporales InnoDB se crean en tablespaces temporales de sesión, que están representados por archivos .ibt (temporales InnoDB). Este cambio es una de las mejoras en el manejo de tablas temporales y ayuda a mejorar el rendimiento general y la manejabilidad de las tablas temporales en InnoDB.

Mayor seguridad y rendimiento de la autenticación con caching_sha2_password

Un nuevo plug-in de autenticación llamado caching_sha2_password está diseñado para mejorar la seguridad de la autenticación, al tiempo que soluciona los problemas de latencia asociados al plug-in anterior sha256_password. Ambos plug-ins implementan el hash decontraseñas SHA-256 para aumentar la seguridad, pero caching_sha2_password incorpora mecanismos de almacenamiento en caché para mejorar el rendimiento.

El mecanismo de almacenamiento en caché de caching_sha2_password ayuda a reducir la sobrecarga computacional del hash de contraseñas durante el proceso de autenticación. Para ello, almacena en caché los valores de las contraseñas previamente procesadas, lo que permite una autenticación más rápida de los usuarios que se han conectado recientemente. Esto puede ser especialmente beneficioso en escenarios con altas tasas de conexión o donde la latencia de la autenticación sea unproblema.

Categorización mejorada de las cuentas de usuario con el privilegio SYSTEM_USER

Se ha introducido un sistema de categorización de cuentas de usuario, con el privilegio SYSTEM_USER. Este concepto permite distinguir claramente entre usuarios del sistema y usuarios normales dentro del marco de autenticación y autorización de MySQL. Los usuarios que poseen el privilegio SYSTEM_USER se clasifican como usuarios del sistema, a los que normalmente se les conceden privilegios elevados para la gestión y administración de bases de datos, incluido el acceso a recursos y tablas relacionados con el sistema. En cambio, los usuarios normales no poseen este privilegio y están destinados al acceso típico a la base de datos a nivel de aplicación. Esta categorización de las cuentas de usuario mejora la seguridad y el control de acceso, facilitando una estructura de usuarios más organizada y manejable en las Implementaciones de MySQL.

Seguridad mejorada con bloqueo temporal de la cuenta

Los administradores pueden configurar las cuentas de usuario para implementar el bloqueo temporal de la cuenta como medida de seguridad. Esta funcionalidad permite al sistema detectar y responder a un umbral predefinido de intentos de acceso fallidos consecutivos bloqueando temporalmente la cuenta de usuario. Al hacerlo, añade una capa adicional de seguridad contra posibles intentos de acceso no autorizados, protegiendo eficazmente la base de datos de ataques de fuerza bruta o de accesos no autorizados debidos a múltiples intentos fallidos de inicio de sesión. Esta función contribuye a mejorar la seguridad y el control de acceso en las Implementaciones de MySQL.

Gestión de privilegios simplificada con roles

Se ha introducido la compatibilidad con roles. Los roles son colecciones de privilegios con nombre que pueden simplificar y agilizar la gestión de privilegios de los usuarios. Los administradores pueden crear, eliminar, conceder y revocar funciones, y estas funciones pueden, a su vez, tener privilegios concedidos o revocados. Además, los roles se pueden conceder o revocar a usuarios individuales, lo que facilita la gestión y el mantenimiento de esquemas de privilegios complejos en MySQL. Los roles ayudan a centralizar la gestión de privilegios, reducen la complejidad y mejoran el mantenimiento y la seguridad de los sistemas de bases de datos MySQL, al permitir a los administradores agrupar y asignar privilegios de forma más eficiente.

Seguridad mejorada con autenticación multifactor

A partir de MySQL 8.0.27, se admite la autenticación multifactor (MFA), que permite mejorar la seguridad habilitando hasta tres métodos de autenticación por cuenta de usuario. Se puede exigir a los usuarios que proporcionen varias formas de autenticación antes de obtener acceso a la base de datos, lo que mejora la postura general de seguridad de las Implementaciones de MySQL. MFA es una función crucial cuando una autenticación fuerte es esencial para proteger datos sensibles y evitar accesos no autorizados. Al admitir múltiples métodos de autenticación, MySQL ofrece mayor flexibilidad y opciones para mejorar la seguridad en función de las necesidades específicas de la aplicación y laorganización.

Capacidad dinámica del registro de rehacer

A partir de MySQL 8.0.30, el registro de rehacer dinámico InnoDB introduce una nueva capacidad, que permite a los usuarios redimensionar dinámicamente los archivos de registro de rehacer sin necesidad de reiniciar el sistema. Esto supone una mejora sustancial en comparación con versiones anteriores de MySQL, que requerían un redimensionamiento manual y un reinicio de la base de datos para que dichos cambios se hicieran efectivos. Una capacidad insuficiente del registro de rehacer puede plantear problemas de rendimiento, por lo que esta función de redimensionamiento dinámico es una valiosa mejora.

Claves primarias invisibles generadas

MySQL 8.0.30 introduce soporte para claves primarias invisibles generadas (GIPK) en tablas InnoDB creadas sin una clave primaria explícita. Cuando la variable de sistema del servidor sql_generate_invisible_primary_key está activada, el servidor MySQL incluirá de forma autónoma una GIPK para cualquier tabla correspondiente.

MySQL como almacén de documentos

X Plugin capacita al servidor MySQL para comunicarse con los clientes a través del Protocolo X, un requisito previo para emplear MySQL como almacén de documentos. Vale la pena señalar que el Plugin X ahora está activado por defecto.

Conclusión

MySQL está disponible en múltiples plataformas y sistemas operativos, como Windows, Linux, macOS y varios proveedores de la nube. Utilizar MySQL en estas plataformas ofrece varias ventajas, como una instalación sencilla, integración con otras aplicaciones, escalabilidad y HA. Con los ajustes de configuración de ejemplo proporcionados en este capítulo, es fácil configurar MySQL en varias plataformas y empezar a utilizarlo para tusaplicaciones.

Get Administración práctica de MySQL now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.