sql >> Base de Datos >  >> RDS >> Mysql

Configuración de variables de configuración de MySQL:MySQL 5.7 frente a MySQL 8.0

Las variables de configuración de MySQL son un conjunto de variables del sistema del servidor que se utilizan para configurar el funcionamiento y el comportamiento del servidor. En esta entrada de blog, explicaremos las diferencias en la gestión de las variables de configuración entre MySQL 5.7 y MySQL 8.0.

Explicaremos tres formas diferentes de configurar las variables de configuración según su caso de uso. Las variables de configuración que se pueden establecer en tiempo de ejecución se denominan variables dinámicas y aquellas que necesitan un reinicio del servidor MySQL para tener efecto se denominan variables no dinámicas.

1:Establecer la configuración para la vida útil actual de un servidor MySQL en ejecución

La mayoría de las configuraciones de MySQL son de naturaleza dinámica y se pueden establecer en tiempo de ejecución mediante el comando SET. Esto significa que los cambios no son persistentes y se perderán si se reinicia el servidor MySQL. Esto es útil para probar el comportamiento de su cambio de configuración antes de hacerlo permanente.

Para MySQL 5.7 y 8.0, puede lograr esto usando el comando SET GLOBAL

Ejemplo:

mysql> set global max_connect_errors=10000;

2:Establecer y conservar el cambio de configuración en los reinicios de MySQL

Una vez que esté satisfecho con los ajustes de cambio de configuración, querrá hacerlo permanente.

En MySQL 5.7, necesitaría hacer esto en 2 pasos:

  1. Establezca la configuración del tiempo de ejecución con el comando SET GLOBAL
mysql> set global max_connect_errors=10000;
  1. Guarde este cambio en su archivo my.cnf actualizando la entrada existente para max_connect_errors o agregando una nueva.

Esto se ha vuelto mucho más fácil en MySQL 8.0. Puede hacer esto en un solo paso usando el comando SET PERSIST

mysql> set persist max_connect_errors=10000;
Cómo establecer variables de configuración:MySQL 5.7 frente a MySQL 8.0Haga clic para twittear

Esto establecerá el valor de tiempo de ejecución para la configuración y también conservará el cambio al guardarlo en el archivo mysqld-auto.cnf que existe en el directorio de datos. Este es un archivo json y ahora verá las siguientes entradas en el archivo.

{

"Version": 1,

"mysql_server": {

"max_connect_errors": {

"Value": "10000",

"Metadata": {

"Timestamp": 1581135119397374,

"User": "sgroot",

"Host": "localhost"

}

}

}

}

Nota: Los ajustes de configuración presentes en mysqld-auto.cnf siempre anulan los valores presentes en el archivo my.cnf. Por lo tanto, cualquier otro cambio que realice en el archivo my.cnf para la variable "max_connect_errors" no surtirá efecto. Esto puede ser confuso para aquellos que hacen la transición de MySQL 5.7, ya que pueden estar acostumbrados a almacenar todas sus configuraciones en my.cnf

3:Configuración de variables de configuración que no son dinámicas

Algunas de las variables de configuración no se pueden establecer en tiempo de ejecución y requerirían un reinicio de MySQL para que surtan efecto.

En MySQL 5.7, haría una entrada para estas variables en su archivo my.cnf y reiniciaría el servidor MySQL para que surta efecto. Un ejemplo de una variable de este tipo es innodb_log_file_size.

En MySQL 8.0, puede ejecutar un comando llamado SET PERSIST ONLY que creará una entrada en mysqld-auto.cnf.

Ejemplo:

mysql> set persist_only innodb_log_file_size=134217728;

También es posible reiniciar el servidor MySQL desde la línea de comandos usando el comando REINICIAR. Esto hará que el valor modificado de innodb_log_file_size surta efecto.

Nota: El comando RESTART solo funciona si MySQL se administra con programas externos como systemd o mysqld_safe. Consulte más detalles sobre esto aquí.

De lo contrario, el comando REINICIAR falla con un mensaje como el siguiente.

mysql> RESTART;

ERROR 3707 (HY000): Restart server failed (mysqld is not managed by supervisor process).

Gestión de la configuración de MySQL en varios servidores

Administrar la configuración de MySQL en entornos de réplica de origen es un proceso tedioso si tiene que administrar varios clústeres que ejecutan diferentes versiones de MySQL. Aquí es donde una solución administrada como ScaleGrid sería beneficiosa.

La consola de interfaz de usuario de ScaleGrid se puede usar para revisar la configuración actual de varias variables de configuración o establecer sus valores.

ScaleGrid puede reconocer cuándo una opción de configuración no es dinámica y advertirá al usuario si es necesario reiniciar MySQL para que el valor surta efecto. ScaleGrid también realizará una copia de seguridad del archivo my.cnf actual antes de aplicar cualquier cambio de configuración nuevo.

En entornos de réplicas de origen, ScaleGrid cambia los parámetros de configuración de manera progresiva, un servidor a la vez. Si es necesario configurar una variable no dinámica, ScaleGrid realiza una conmutación por error del maestro actual para minimizar el tiempo de inactividad que implica si MySQL debe reiniciarse.

Visite el enlace a continuación para obtener más información sobre las diferentes características de la solución de hospedaje ScaleGrid MySQL.