El Servidor MySQL

Configuración del servidor

El servidor MySQL, mysqld, tiene muchas opciones de comando y variables del sistema que se pueden configurar al inicio. Para determinar la opción de comando predeterminada y los valores de la variable del sistema utilizados por el servidor, ejecute este comando:

shell> mysqld --verbose --help
El comando produce una lista de todas las opciones de mysqld y las variables de sistema configurables. Su salida incluye la opción predeterminada y los valores de las variables y se parece a esto:
abort-slave-event-count           0
allow-suspicious-udfs             FALSE
archive                           ON
auto-increment-increment          1
auto-increment-offset             1
autocommit                        TRUE
automatic-sp-privileges           TRUE
avoid-temporal-upgrade            FALSE
back-log                          80
basedir                           /home/jon/bin/mysql-8.0/
...
tmpdir                            /tmp
transaction-alloc-block-size      8192
transaction-isolation             REPEATABLE-READ
transaction-prealloc-size         4096
transaction-read-only             FALSE
transaction-write-set-extraction  XXHASH64
updatable-views-with-limit        YES
validate-user-plugins             TRUE
verbose                           TRUE
wait-timeout                      28800

Para ver los valores actuales de las variables del sistema que realmente usa el servidor mientras se ejecuta, conéctese y ejecute esta declaración:

mysql> SHOW VARIABLES;

Para ver algunos indicadores estadísticos y de estado de un servidor en ejecución, ejecute esta declaración:

mysql> SHOW STATUS;

La variable del sistema y la información de estado también están disponibles mediante el comando mysqladmin :

shell> mysqladmin variables
shell> mysqladmin extended-status
Si especifica una opción en la línea de comando para mysqld o mysqld_safe , permanecerá vigente solo para esa invocación del servidor. Para usar la opción cada vez que se ejecuta el servidor, colóquela en un archivo de opciones.

Valores Predeterminados de Configuración del Servidor

El servidor MySQL tiene muchos parámetros operativos, que puedes cambiar al iniciar el servidor utilizando opciones de línea de comandos o archivos de configuración (archivos de opciones). También es posible cambiar muchos parámetros en tiempo de ejecución, que veremos posteriormente.

Después de completar el proceso de instalación, puedes editar el archivo de opciones predeterminado en cualquier momento para modificar los parámetros utilizados por el servidor. Por ejemplo, para utilizar una configuración de parámetro en el archivo que se comenta con un caracter # al principio de la línea, elimine el caracter # y modifique el valor del parámetro si es necesario. Para deshabilitar una configuración, agregue un # al principio de la línea o elimínelo.

Nombre del archivo Objetivo
/etc/my.cnf Opciones globales
/etc/mysql/my.cnf Opciones globales
SYSCONFDIR/my.cnf Opciones globales
$MYSQL_HOME/my.cnf Opciones específicas del servidor (solo servidor)
defaults-extra-file El archivo especificado con --defaults-extra-file, si lo hay
~/.my.cnf Opciones específicas del usuario
~/.mylogin.cnf Opciones de ruta de inicio de sesión específicas del usuario (solo clientes)
DATADIR/mysqld-auto.cnf Las variables del sistema persistieron con SET PERSISTo SE PERSIST_ONLY(solo servidor)

Las líneas vacías en los archivos de opciones se ignoran. Las líneas no vacías pueden adoptar cualquiera de las siguientes formas:

comment, ;comment

Las líneas de comentario comienzan con # o ;. Un # comentario también puede comenzar en medio de una línea.

[group]

group es el nombre del programa o grupo para el que desea establecer opciones. Después de una línea de grupo, cualquier línea de configuración de opciones se aplica al grupo nombrado hasta el final del archivo de opciones u otra línea de grupo. Los nombres de los grupos de opciones no distinguen entre mayúsculas y minúsculas.

opt_name

Esto es equivalente a en la línea de comandos. --opt_name

opt_name=value

Esto es equivalente a en la línea de comandos. En un archivo de opciones, puede tener espacios alrededor del carácter, algo que no es cierto en la línea de comandos. Opcionalmente, el valor se puede encerrar entre comillas simples o comillas dobles, lo cual es útil si el valor contiene un carácter de comentario. --opt_name=value=#

A continuación un ejermplo de fichero de configuración global típico:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=128M

[mysqldump]
quick
Archivo de opciones de usuario típico
[client]
# The following password is sent to all standard MySQL clients
password="my password"

[mysql]
no-auto-rehash
connect_timeout=2
Inclusión de archivos de opciones:

Es posible utilizar la directiva !include en archivos de opciones para incluir otros archivos de opciones y la directiva !includedir para buscar archivos de opciones en directorios específicos. Por ejemplo, para incluir el /home/mydir/myopt.cnfarchivo, use la siguiente directiva:

!include /home/mydir/myopt.cnf

Para buscar en el directorio /home/mydirdirectorio y leer los archivos de opciones que se encuentran allí, use esta directiva: (MySQL no asegura el orden en que se leerán los archivos)

!includedir /home/mydir

Supongamos el siguiente ejemplo de fichero de configiuración (myopt.cnf):

[mysqladmin]
force

[mysqld]
key_buffer_size=16M

Si myopt.cnf es procesado por mysqld , solo se usa el grupo [mysqld]. Si mysqladmin procesa el archivo, solo [mysqladmin]se usa el grupo. Si el archivo es procesado por cualquier otro programa, no se utilizan las opciones.

Validación de la configuración del servidor

A partir de MySQL 8.0.16, MySQL Server admite una opción --validate-config que permite verificar la configuración de inicio en busca de problemas sin ejecutar el servidor en modo operativo normal:

shell> mysqld --validate-config
Si no se encuentran errores, el servidor termina con un código de salida de 0. Si se encuentra un error, el servidor muestra un mensaje de diagnóstico y termina con un código de salida de 1. Por ejemplo:
shell> mysqld --validate-config --no-such-option
2018-11-05T17:50:12.738919Z 0 [ERROR] [MY-000068] [Server] unknown
option '--no-such-option'.
2018-11-05T17:50:12.738962Z 0 [ERROR] [MY-010119] [Server] Aborting

Cuando al validar el fichero encuentra algún error se detiene e informa. Existen otra variedad de opciones que permiten incluso la validación entera del todo el fichero: -log_error_verbosity, consultar el manal de referencia de MySql.

Opción de servidor, variable de sistema y referencia de variable de estado

Consultar el resumen de las opciones, variables del sistema y de estado en el manual de refrencia de mySql.

Referencia de variable de sistema del servidor