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
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
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
[client]
# The following password is sent to all standard MySQL clients
password="my password"
[mysql]
no-auto-rehash
connect_timeout=2
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
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.