Esta sección discute los siguientes tópicos de MySQL Server:
-
Opciones de arranque que soporta el servidor
-
Cómo configurar el modo SQL del servidor
-
Variables de sistema del servidor
-
Variables de estado del servidor
Cuando arranca el servidor mysqld , puede especificar opciones de programa usando cualquiera de los métodos descritos en Sección 4.3, “Especificar opciones de programa”. Los métodos más comunes son proporcionar opciones en un fichero de opciones o por línea de comandos. Sin embargo, en la mayoría de los casos es deseable asegurar que el servidor usa las mismas opciones cada vez que se ejecuta. La mejor manera de asegurarlo es listarlas en un fichero de opciones. Consulte Sección 4.3.2, “Usar ficheros de opciones”.
mysqld lee opciones de los grupos
[mysqld]
y [server]
.
mysqld_safe lee opciones de los grupos
[mysqld]
, [server]
,
[mysqld_safe]
, y
[safe_mysqld]
.
mysql.server lee opciones de los grupos
[mysqld]
y [mysql.server]
. Un servidor MySQL incrustrado normalmente lee opciones de los
grupos [server]
,
[embedded]
, y
[
xxxxx
_SERVER] ,
donde xxxxx
es el nombre de la
aplicación en la que el servidor está incrustado.
mysqld acepta varias opciones de línea de comando. Para una breve lista, ejecute mysqld --help. Para ver la lista completa, use mysqld --verbose --help.
La siguiente lista muestra algunas de las opciones de servidor más comunes. Opciones adicionales se describen en los siguientes links:
-
Opciones que afectan la seguridad: Consulte Sección 5.5.3, “Opciones de arranque para mysqld relacionadas con la seguridad”.
-
Opciones relacionadas con SSL: Consulte Sección 5.7.7.5, “Opciones relativas a SSL”.
-
Opciones de control del log binario: Consulte Sección 5.10.3, “El registro binario (Binary Log)”.
-
Opciones relacionadas con replicación: Consulte Sección 6.8, “Opciones de arranque de replicación”.
-
Opciones específicas a motores de almacenamiento particulares: Consulte Sección 14.1.1, “Opciones de arranque de
MyISAM
”, Sección 14.4.3, “Opciones de arranque deBDB
”, and Sección 15.4, “Opciones de arranque deInnoDB
”.
También puede cambiar los valores de una variable de sistema del servidor usando el nombre de variable como opción, tal y como se describe más tarde en esta sección.
-
--help, -?
Muestra un mensaje de ayuda corto y sale. Use las opciones
--verbose
y--help
simultáneamente para ver el mensaje entero. -
--allow-suspicious-udfs
Este opción controla si las funciones definidas por el usuario que sólo tienen un símbolo
xxx
para la función principal pueden cargarse. Por defecto, la opción está desactivada y sólo UDFs que tengan al menos un símbolo auxiliar pueden cargarse. Esto previene intentos de cargar funciones de ficheros con objetos compartidos que no contengan UDFs legítimos. En las series de MySQL 5.0 está opción se añadió en la versión 5.0.3. Consulte Sección 27.2.3.6, “Precauciones de seguridad en funciones definidas por usuarios”. -
--ansi
Usa sintaxis estándard SQL (ANSI) en lugar de sintaxis MySQL.Consulte Sección 1.7.3, “Ejecutar MySQL en modo ANSI”. Para un control más preciso sobre el modo SQL del servidor, use la opción
--sql-mode
. -
--basedir=
path
, -bpath
El path al directorio de instalación de MySQL. Todas las rutas se resuelven normalmente relativas a ésta.
-
--bind-address=
IP
La dirección IP a ligar.
-
--console
Escribe los mensajes de error por
stderr
ystdout
incluso si--log-error
está especificado. En Windows, mysqld no cierra la pantalla de consola si se usa esta opción. -
--character-sets-dir=
path
El directorio donde los conjuntos de carácteres están instalados. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
-
--chroot=
path
Pone el servidor mysqld en un entorno cerrado durante el arranque usando la llamada de sistema
chroot()
. Esta es una medida de seguridad recomendada. Tenga en cuenta que el uso de esta opción limita de alguna maneraLOAD DATA INFILE
ySELECT ... INTO OUTFILE
. -
--character-set-server=
charset
Usa
charset
como el conjunto de carácteres por defecto del servidor. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”. -
--core-file
Escribe un fichero core si mysqld muere. Para algunos sistemas, también puede especificar la opción
--core-file-size
en mysqld_safe. Consulte Sección 5.1.3, “El script de arranque del servidor mysqld_safe”. Tenga en cuenta que en algunos sistemas como Solaris, no obtiene un fichero core si está usando la opción--user
. -
--collation-server=
collation
Usa
collation
como la colación del servidor por defecto. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”. -
--datadir=
path
, -hpath
La ruta al directorio de datos.
-
--debug[=
debug_options
], -# [debug_options
]Si MySQL está configurado con
--with-debug
, puede usar esta opción para obtener un fichero de traza de qué está haciendo mysqld . La cadena de carácteresdebug_options
a menudo es'd:t:o,
file_name
'. Consulte Sección D.1.2, “Crear ficheros de traza”. -
(DEPRECATED)
--default-character-set=
charset
Usa
charset
como el conjunto de carácteres por defecto. Esta opcíon está obsoleta a favor de--character-set-server
. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”. -
--default-collation=
collation
Usa
collation
como colación por defecto. Esta opción está obsoleta a favor de--collation-server
. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”. -
--default-storage-engine=
type
Esta opción es un sinónimo para
--default-table-type
. -
--default-table-type=
type
Cambia el valor por defecto de tipo de tablas. Consulte Capítulo 14, Motores de almacenamiento de MySQL y tipos de tablas.
-
--default-time-zone=
type
Cambia la zona horaria del servidor. Esta opción cambia la variable global de sistema
time_zone
. Si no se da esta opción, la zona horaria por defecto es la misma que la del sistema (dada por el valor de la variable de sistemasystem_time_zone
. -
--delay-key-write[= OFF | ON | ALL]
Coómo debe usarse la opción
DELAYED KEYS
. La escritura retardada de claves provoca que los buffers de claves no se vuelquen entre escrituras para tablasMyISAM
.OFF
desactiva escritura de claves retardada.ON
activa escritura de claves reatardada para aquellas tablas creadas con la opciónDELAYED KEYS
.ALL
retarda la escritura de claves para todas las tablasMyISAM
. Consulte Sección 7.5.2, “Afinar parámetros del servidor”. Consulte Sección 14.1.1, “Opciones de arranque deMyISAM
”.Nota: Si asigna a esta variable el valor
ALL
, no debe usar tablasMyISAM
de otro programa (como de otro servidor MySQL o con myisamchk) cuando una tabla esté en uso. Hacerlo provoca corrupción de los índices. -
--des-key-file=
file_name
Lee las claves por defecto usadas por
DES_ENCRYPT()
yDES_DECRYPT()
de este fichero. -
--enable-named-pipe
Activa el soporte para named pipes. Esta opción se aplica sólo en Windows NT, 2000, XP y 2004, y sólo pueden usarse con servidores mysqld-nt y mysqld-max-nt que soporten conexiones para named pipes.
-
--exit-info[=
flags
], -T [flags
]Esta es una máscara de bits de diferentes flags y que puede usar para debugar el servidor mysqld . No use esta opción a no ser que sepa exactamente lo que hace!
-
--external-locking
Activa bloqueo del sistema. Tenga en cuenta que si usa esta opción en un sistema en que
lockd
no funcione plenamente (comom en Linux), es fácil para mysqld caer en un deadlock. Esta opción préviamente era--enable-locking
.Nota: Si usa esta opción para permitir actualizaciones en tablas
MyISAM
en cualquier proceso MySQL, debe asegurarse que las siguiente condiciones se satisfacen:-
No debe usar la caché de consultas para consultas que usen tablas actualizadas por otros procesos.
-
No debe usar
--delay-key-write=ALL
oDELAY_KEY_WRITE=1
en ninguna tabla compartida.
La forma más fácil de asegurar esto es usar siempre
--external-locking
junto a--delay-key-write=OFF --query-cache-size=0
.(Esto no se hace por defecto ya que en muchas configuraciones es útil tener una mezcla de las opciones anteriores.)
-
-
--flush
Escribe todos los cambios a disco después de cada comando SQL. Normalmente MySQL escribe todos los cambios en disco después de cada comando SQL y deja al sistema operativo la sincronización con el disco. Consulte Sección A.4.2, “Qué hacer si MySQL sigue fallando (crashing)”.
-
--init-file=
file
Lee comandos SQL de este fichero al arrancar. Cada comando debe ser de una sola línea y no debe incluir comentarios.
-
--innodb-safe-binlog
Añade garantía de consistencia entre el contenido de las tablas
InnoDB
y el log binario. Consulte Sección 5.10.3, “El registro binario (Binary Log)”. -
--language=
lang_name
, -Llang_name
Mensajes de error del cliente en el idioma dado.
lang_name
puede darse como el nombre del idioma o como la ruta al directorio donde los ficheros de idioma están instalados. Consulte Sección 5.9.2, “Escoger el idioma de los mensajes de error”. -
--large-pages
Algunas arquitecturas hardware o de sistemas operativos soportan paginación de memoria mayor a la que hay por defecto (normalmente 4 KB). La implementación de este soporte depende del hardware subyacente y del SO. Aplicaciones que necesiten mucha memoria pueden obtener mejoras de rendimiento usando páginas grandes gracias a reducir los fallos en el Translation Lookaside Buffer (TLB).
Actualmente, MySQL soporta sólo implementaciones en Linux de soporte para páginas grandes (que se llama HugeTLB en Linux). Tenemos planes de extender este soporte a FreeBSD, Solaris y posiblemente otras plataformas.
Antes de poder usar páginas grandes en Linux, es necesario configurar el pool de memoria de HugeTLB. Como referencia, consulte el fichero
hugetlbpage.txt
en la fuente del kernel Linux.Esta opción está desactivada por defecto. Se añadió en MySQL 5.0.3.
-
--log[=
file
], -l [file
]Log de conexiones y consultas en este fichero. Consulte Sección 5.10.2, “El registro general de consultas”. Si no especifica un nombre de fichero, MySQL usa
host_name
.log como nombre de fichero. -
--log-bin=[
file
]El fichero de logs binario. Loguea todas las consultas que cambian datos en este fichero. Se usa para copias de seguridad y replicación. Consulte Sección 5.10.3, “El registro binario (Binary Log)”. Se recomienda especificar un nombre de fichero (consulte Sección A.8.4, “Cuestiones abiertas en MySQL” para la razón) en caso contrario MySQL usa
host_name
-bin como el nombre base para el fichero de logs. -
--log-bin-index[=
file
]El fichero índice para log binario. Consulte Sección 5.10.3, “El registro binario (Binary Log)”. Si no especifica un nombre de fichero, y si no especifica uno en
--log-bin
, MySQL usahost_name
-bin.index como el nombre de fichero. -
--log-bin-trust-routine-creators[={0|1}]
Sin argumento o un argumento de 1, esta opción inicializa la variable de sistema
log_bin_trust_routine_creators
a 1. Con un argumento de 0, esta opción actualiza la variable de sistema a 0..log_bin_trust_routine_creators
afecta cómo MySQL fuerza las restricciones en la creación de rutinas almacenadas. Consulte Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”.Esta opción se añadió en MySQL 5.0.6.
-
--log-error[=
file
]Mensajes de error y de arranque en este fichero. Consulte Sección 5.10.1, “El registro de errroes (Error Log)”. Si no especifica un nombre de fichero, MySQL usa
host_name
.err como nombre de fichero. Si el nombre de fichero no tiene extensión, una extensión.err
se añade al nombre. -
--log-isam[=
file
]Loguea todos los cambios
ISAM
/MyISAM
en este fichero (usado sólo al debugarISAM
/MyISAM
). -
(DEPRECATED)
--log-long-format
Loguea información extra a cualquiera de los logs que haya activados (log de actualización, log de consultas lentas y log binario). Por ejemplo, se añade el nombre de usuario y tiempo de la consulta para todas las consultas. Esta opción está obsoleta en MySQL 5.0, y ahora representa el comportamiento por defecto para logueo. (Consulte la descripción para
--log-short-format
.) La opción--log-queries-not-using-indexes
está disponible para los propósitos de loguear consultas que no usan índices en el log de consultas lentas -
--log-queries-not-using-indexes
Si usa esta opción con
--log-slow-queries
, las consultas que no usan índices también se loguean en el log de consultas lentas. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”. -
--log-short-format
Loguea menos información en cualquiera de los logs activados (log de actualización, log binario y log de consultas lentas). Por ejemplo, el nombre de usuario y el tiempo en que se produce la consulta no se guardan para las consultas.
-
--log-slow-admin-statements
Loguea comandos lentos administrativos tales como
OPTIMIZE TABLE
,ANALYZE TABLE
, yALTER TABLE
en el log de consultas lentas. -
--log-slow-queries[=
file
]Loguea todas las consultas que han tardado más de
long_query_time
segundos en ejecutarse en este fichero.. See Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”. Consulte las descripciones de las opciones--log-long-format
y--log-short-format
para más detalles. -
--log-warnings, -W
Muestra advertencias tales como
Aborted connection...
en el log de errores. Se recomienda activar esta opción, por ejemplo, si usa replicación (obtiene mayor información acerca de lo que está ocurriendo, tal como mensajes acerca de fallos de red y reconexiones). Esta opción está activada por defecto en MySQL 5.0; para desactivarla, use--skip-log-warnings
. Las conexiones abortadas no se loguean en el log de errores a no ser que el valor sea mayor que 1. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”. -
--low-priority-updates
Operaciones que modifiquen la tabla (
INSERT
,REPLACE
,DELETE
,UPDATE
) tiene una prioridad inferior a las selecciones. También puede hacerse vía{INSERT | REPLACE | DELETE | UPDATE} LOW_PRIORITY ...
para bajar la prioridad de sólo una consulta, o conSET LOW_PRIORITY_UPDATES=1
para cambiar la prioridad en un thread. Consulte Sección 7.3.2, “Cuestiones relacionadas con el bloqueo (locking) de tablas”. -
--memlock
Bloquea el proceso mysqld en memoria. Funciona con sistemas tales como Solaris que soportan la llamada de sistema
mlockall()
. Esto puede ser útil si tiene un problema en el que el sistema operativo cause que mysqld realice swap en el disco. Tenga en cuenta que el uso de esta operación requiere que ejecute el servidor comoroot
, lo que normalmente no es una buena idea por razones de seguridad. -
--myisam-recover [=
option
[,option
...]]]Inicializa el modo de recuperación en el motor de almacenamiento
MyISAM
. El valor para esta opción es cualquier combinación de los valoresDEFAULT
,BACKUP
,FORCE
, oQUICK
. Si especifica múltiples valores, sepárelos con comas. Puede usarse como valor""
para desactivar esta opción. Si esta opción se usa, mysqld, cuando abre una tablaMyISAM
, comprueba si la tabla tiene marca de que haya fallado o no se haya cerrado correctamente. (La última opción sólo funciona si está ejecutando con la opción--skip-external-locking
.) En este caso, mysqld realiza una comprobación sobre la tabla. Si la tabla está corrupta, mysqld intenta repararla.La siguientes opciones afectan el funcionamiento de la reparación:
Opción Descrición DEFAULT
Lo mismo que no dar ninguna opción --myisam-recover
.BACKUP
Si el fichero de datos ha cambiado durante la recuperación, guarda una copia de seguridad del fichero tbl_name
.MYD comotbl_name-datetime
.BAK.FORCE
Ejecuta una recuperación incluso si perdemos más de un registro del fichero .MYD
.QUICK
No comprueba los registros en la tabla si no hay ningún bloque borrado. Antes de reparar una tabla automáticamente, MySQL añade una nota acerca de ello en el log de errores. Si quiere poder recuperarse de la mayoría de problemas sin intervención por parte del usuario, debe usar las opciones
BACKUP,FORCE
. Esto fuerza la reparación de una tabla incluso si algunos registros se borran durante el proceso, pero guarda el antiguo fichero de datos como una copia de seguridad, de forma que posteriormente pueda examinar qué ocurrió. -
--ndb-connectstring=
connect_string
Cuando use el motor de almacenamiento
NDB
, es posible determinar el servidor de administración que distribuye la configuración del cluster mediante la inicialización de la opción de la cadena de conexión. Consulte Sección 16.4.4.2, “Elconnectstring
de MySQL Cluster” para la sintaxis. -
--ndbcluster
Si el binario incluye soporte para el motor de almacenamiento
NDB Cluster
, la opción por defecto de desactivar el soporte para MySQL Cluster puede ignorarse usando esta opción. Consulte Capítulo 16, MySQL Cluster. -
--old-passwords
Fuerza al servidor a generar un pequeño hash de contraseñas (pre-4.1) para nuevas contraseñas. Esto es útil para compatibilidad con antiguos programas cliente. Consulte Sección 5.6.9, “Hashing de contraseñas en MySQL 4.1”.
-
--one-thread
Sólo usa un thread (para debugar bajo Linux). Esta opción está disponible sólo si el servidor está compilado con la opción de debugar. Consulte Sección D.1, “Depurar un servidor MySQL”.
-
--open-files-limit=
count
Para cambiar el número de descriptores de fichero disponibles para mysqld. Si no se inicializa o se asigna otro valor a 0, entonces mysqld usa este valor para reservar descriptores de fichero para usar con
setrlimit()
. Si el valor es 0, entonces mysqld reservamax_connections*5
omax_connections + table_cache*2
(lo que sea mayor) número de ficheros. Puede tratar de incrementar este valor si mysqld le muestra el error "Too many open files." -
--pid-file=
path
El path al fichero con el ID de proceso usado por mysqld_safe.
-
--port=
port_num
, -Pport_num
El número de puerto que se usa para escuchar conexiones TCP/IP.
-
--safe-mode
Omite algunas etapas de optimización.
-
(DEPRECATED)
--safe-show-database
Consulte Sección 5.6.3, “Privilegios de los que provee MySQL”.
-
--safe-user-create
Si está activado, un usuario no puede crear nuevos usuarios con el comando
GRANT
, si el usuario no tiene el privilegioINSERT
para la tablamysql.user
o cualquiera de sus columnas. -
--secure-auth
No permite autenticación para cuentas que usan las contraseñas antiguas (pre-4.1).
-
--shared-memory
Activa conexiones mediante memoria compartida con clientes locales. Esta opción sólo está disponible en Windows.
-
--shared-memory-base-name=
name
El nombre a usar en conexiones mediante memoria compartida. Esta opción sólo está disponible en Windows.
-
--skip-bdb
Deshabilita el motor de almacenamiento
BDB
. Esto ahorra memoria y puede acelerar algunas operaciones. No use esta opción si necesita tablasBDB
. -
--skip-concurrent-insert
Desactiva la habilidad de seleccionar e insertar al mismo tiempo en tablas
MyISAM
. (Esto sólo debe usarse si cree que ha encontrado un bug en esta funcionalidad.) -
--skip-external-locking
No usa sistema de bloqueo. Para usar myisamchk, debe apagar el servidor. (Consulte Sección 1.4.3, “Estabilidad de MySQL”.) Para evitar este requerimiento, use
CHECK TABLE
yREPAIR TABLE
desde el MySQL Monitor para comprobar y reparar tablasMyISAM
. -
--skip-grant-tables
Esta opción hace que el servidor no use el sistema de privilegios en absoluto. Esta opción da a cualquiera que tenga acceso al servidor acceso ilimitado a todas las bases de datos. Puede hacer que un servidor en ejecución empiece a usar las tablas de privilegios de nuevo ejecutando mysqladmin flush-privileges o el comando mysqladmin reload desde una consola de sistema, o utilizando el comando MySQL
FLUSH PRIVILEGES
. -
--skip-host-cache
No use la cache interna de nombres de servidor para una resolución rápida de nombre-a-IP. En lugar de ello, interrogue al servidor DNS cada vez que un cliente se conecte. Consulte Sección 7.5.6, “Cómo usa MySQL las DNS”.
-
--skip-innodb
Deshabilita el motor de almacenamiento
InnoDB
. Esto ahorra memoria y espacio en disco y puede acelerar algunas operaciones. No use esta opción si necesita tablasInnoDB
. -
--skip-name-resolve
No resuelva los nombres de servidor cuando compruebe las conexiones de clientes. Use sólo números IP. Si usa esta opción, todos los valores de la columna
Host
en la tabla de privilegios deben ser números IP olocalhost
. Consulte Sección 7.5.6, “Cómo usa MySQL las DNS”. -
--skip-ndbcluster
Deshabilite el motor de almacenamiento
NDB Cluster
. Este es el comportamiento por defecto para los binarios compilados con el soporte para el motor de almacenamiento deNDB Cluster
, lo que significa que el sistema reserva memoria y otros recursos para este motor de almacenamiento sólo si--skip-ndbcluster
está subeditado explícitamente por la opción--ndbcluster
. Consulte Sección 16.4.3, “Rápido montaje de prueba de MySQL Cluster” para un ejemplo de uso. -
--skip-networking
No escucha conexiones TCP/IP en absoluto. Toda interacción con mysqld debe hacerse via named pipes o memoria compartida (en Windows) o ficheros socket en Unix. Esta opción se recomienda encarecidamente en sistemas donde sólo se permitan clientes locales. Consulte Sección 7.5.6, “Cómo usa MySQL las DNS”.
-
--standalone
Sólo para sistemas basados en Windows-NT; le dice al servidor MySQL que no se ejecute como servicio.
-
--symbolic-links, --skip-symbolic-links
Activa o desactiva el soporte para links simbólicos. Esta opción tiene diferentes efectos en Windows y Unix:
-
En Windows, habilitar links simbólicos permite establecer un link simbólico a un directorio de base de datos mediante la creación de un fichero
directory.sym
que contiene el path al directorio real. Consulte Sección 7.6.1.3, “Usar enlaces simbólicos para bases de datos en Windows”. -
En Unix, habilitar links simbólicos significa que puede lincar un fichero de índice o de datos
MyISAM
a otro directorio con las opcionesINDEX DIRECTORY
oDATA DIRECTORY
del comandoCREATE TABLE
. Si borra o renombra la tabla, el fichero cuyo link simbólico apunta a dicha tabla también se borra o renombra. Consulte Sección 13.1.5, “Sintaxis deCREATE TABLE
”.
-
-
--skip-safemalloc
Si MySQL está configurado con
--with-debug=full
, todos los programs MySQL chequean para desbordamientos de memoria durante cada reserva y liberación de memoria. Este chequeo es muy lento, de forma que puede desactivarlo cuando no lo necesite mediante la opción--skip-safemalloc
. -
--skip-show-database
Con esta opción, el comando
SHOW DATABASES
sólo se permite a usuarios que tengan el privilegioSHOW DATABASES
, y el comando muestra todos los nombres de bases de datos. Sin esta opción,SHOW DATABASES
se permite a todos los usuarios, pero muestra cada nombre de base de datos sólo si el usuario tiene el privilegioSHOW DATABASES
o algún privilegio sobre la base de datos. -
--skip-stack-trace
No escribe la traza de la pila. Esta opción es útil cuando está ejecutando mysqld con un debugger. En algunos sistemas, puede usar esta opción para obtener un fichero core. Consulte Sección D.1, “Depurar un servidor MySQL”.
-
--skip-thread-priority
Desactiva el uso de prioridades de threads para un mejor tiempo de respuesta.
-
--socket=
path
En Unix, esta opción especifica el fichero socket de Unix para usar en conexiones locales. El valor por defecto es
/tmp/mysql.sock
. En Windows, la opción especifica el nombre de pipe a usar en conexiones locales que usen una named pipe. El valor por defecto esMySQL
. -
--sql-mode=
value
[,value
[,value
...]]Inicializa el modo SQL para MySQL. Consulte Sección 5.3.2, “El modo SQL del servidor”.
-
--temp-pool
Esta opción provoca que la mayoría de ficheros temporales creados por el servidor usen un pequeño conjunto de nombes, en lugar de un nombre único para cada fichero nuevo. Esto evita el problema del kernel de Linux de crear muchos nuevos ficheros con nombres diferentes. Con el antiguo comportamiento, parece que a Linux le ``falte'' memoria, ya que se está reservando en la entrada del cache del directorio en lugar de la cache de disco.
-
--transaction-isolation=
level
Especifica el nivel de aislamiento de las transacciones, que puede ser
READ-UNCOMMITTED
,READ-COMMITTED
,REPEATABLE-READ
, oSERIALIZABLE
. Consulte Sección 13.4.6, “Sintaxis deSET TRANSACTION
”. -
--tmpdir=
path
, -tpath
El path del directorio a usar para crear ficheros temporales. Puede ser útil si el directorio por defecto
/tmp
reside en una partición que sea demasiado pequeña para alojar tablas temporales. En MySQL 5.0, esta opción acepta diversas rutas que se usan con una política round-robin. Las rutas deben estar separados por comas en Unix (':
') y puntos y comas (';
') en Windows, NetWare, and OS/2. Si MySQL server está actuando como un esclavo de replicación, no debe hacer que--tmpdir
apunte a un directorio en un sistema de ficheros basado en memoria o a un directorio que se limpie al reiniciar el servidor. Un esclavo de replicación necesita que sobrevivan algunos de sus ficheros temporales tras un reinicio de la máquina de forma que pueda replicar tablas temporales u operacionesLOAD DATA INFILE
. Si los ficheros en el directorio temporal se pierden al reiniciar el servidor, la replicación falla. -
--user={
user_name
|user_id
}, -u {user_name
|user_id
}Ejecuta el servidor mysqld como si el usuario tuviese el nombre
user_name
o el ID de usuariouser_id
. (``Usuario'' en este contexto se refiere a la cuenta de login del sistema, no a un usuario MySQL listado en las tablas de permisos.)Esta opción es obligatoria cuando se ejecute mysqld como
root
. El servidor cambia su ID de usuario durante la secuencia de arranque, causando que se ejecute como ese usuario en particular en lugar deroot
. Consulte Sección 5.5.1, “Guía de seguridad general”.Para evitar un posible agujero de seguridad donde un usuario añade una opción
--user=root
a un ficheromy.cnf
(por lo tanto, causando que el servidor se ejecute comoroot
), mysqld usa sólo la primera opción--user
especificada y produce una adevertencia si hay múltiples opciones--user
. Las opciones en/etc/my.cnf
y$MYSQL_HOME/my.cnf
se procesan antes que las opciones de línea de comandos, así que se recomiendo que ponga una opción--user
en/etc/my.cnf
y especifique un valor distinto aroot
. La opción en/etc/my.cnf
se encuentra antes que cualquier otra opción--user
, lo que asegura que el servidor se ejecute como un usuario distinto aroot
, y que se muestre una advertencia como resultado si cualquier otra opción--user
se encuentra. -
--version, -V
Muestra información de versión y sale.
En MySQL 5.0, puede asignar un valor a una variable de sistema
del servidor usando una opción de la forma
--
nombre_variable
=valor
.
Por ejemplo, --key_buffer_size=32M
inicializa
la variable key_buffer_size
con un valor de
32MB.
Tenga en cuenta que al asignar un valor a una variable, MySQL puede corregir automáticamente la asignación para permanecer dentro de un rango concreto, o ajustar el valor al valor permitido más próximo si sólo se permiten ciertos valores.
También puede inicializar variables usando las sintaxis
--set-variable=
nombre_variable
=valor
o -O
nombre_variable
=valor
.
Sin embargo esta sintaxis está obsoleta
Puede encontrar una descripción concreta de todas las variables en Sección 5.3.3, “Variables de sistema del servidor”. La sección de ajustar los parámetros del servidor incluye información sobre cómo optimizarlos. Consulte Sección 7.5.2, “Afinar parámetros del servidor”.
Puede cambiar los valores de la mayoría de variables de sistema
en un servidor en ejecución con el comando
SET
. Consulte Sección 13.5.3, “Sintaxis de SET
”.
Si desea restringir el máximo valor que se puede asignar a una
opción de arranque con SET
, puede definirlo
con la opción de línea de comandos
--maximum-
var_name
.
MySQL server puede operar en distintos modos SQL, y puede aplicar estos modos de forma distinta a diferentes clientes. Esto permite que cada aplicación ajuste el modo de operación del servidor a sus propios requerimientos.
Los modos definen qué sintaxis SQL debe soportar MySQL y que clase de chequeos de validación de datos debe realizar. Esto hace más fácil de usar MySQL en distintos entornos y usar MySQL junto con otros servidores de bases de datos.
Puede especificar el modo SQL por defecto arrancando
mysqld con la opción
--sql-mode="
modes
".
El valor puede dejarse en blanco
(--sql-mode=""
) si desea resetearlo.
En MySQL 5.0, también puede cambiar el modo SQL tras el tiempo
de arranque cambiando la varialbe sql_mode
usando el comando SET [SESSION|GLOBAL]
sql_mode='
modes
' . Asignar
la variable GLOBAL
requiere el privilegio
SUPER
y afecta las operaciones de todos los
clientes que conecten a partir de entonces. Asignar la variable
SESSION
afecta sólo al cliente actual.
Cualquier cliente puede cambiar el valor de
sql_mode
en su sesión en cualquier momento.
modes
es una lista de los diferentes
modos separados por comas (',
') . Puede
consultar el modo actual mediante el comando SELECT
@@sql_mode
. El valor por defecto es vacío (sin modo
seleccionado).
Los valores de los modos sql_mode
más
importantes probablemente son los siguientes:
-
Cambia el comportamiento y la sintaxis para cumplir mejor el estándard SQL.
-
Si un valor no puede insertarse tal y como se da en una tabla transaccional, se aborta el comando. Para tablas no transaccionales, aborta el comando si el valor se encuentra en un comando que implique un sólo registro o el primer registro de un comando de varios registros. Más detalles a continuación en esta sección. (Implementado en MySQL 5.0.2)
-
Hace que MySQL se comporte como un sistema de bases de datos SQL ``tradicional''. Una simple descripción de este modo es `` da un error en lugar de una alerta'' cuando se inserta un valor incorrecto en la columna. Nota:
INSERT
/UPDATE
aborta así que se detecta un error. Puede que no sea lo que quiera si está usando un motor de almacenamiento no transaccional, ya que los cambios en los datos anteriores al error no se deshacen, resultando en una actualización ``parcial'' . (Añadido en MySQL 5.0.2)
Cuando este manual se refiere al ``modo estricto,'' implica un
modo donde al menos STRICT_TRANS_TABLES
o
STRICT_ALL_TABLES
está permitido.
La siguiente lista describe todos los modos soportados:
-
No hace un chequeo total de los datos en modo estricto. Chequea sólo que los meses se encuentran en el rango de 1 a 12 y que los días están en el rango de 1 a 31. Esto es muy conveniente para aplicaciones Web donde obtiene un año, mes y día en tres campos distintos y quiere guardar exactamente lo que inserta el usuario (sin validación de datos). Este modo se aplica a columnas
DATE
yDATETIME
. No se aplica a columnasTIMESTAMP
, que siempre requieren una fecha válida.Este modo se implementó en MySQL 5.0.2. Antes de 5.0.2, este era el modo por defecto de MySQL para tratar datos. Desde 5.0.2, el permitir el modo estricto provoca que el servidor requiera que el mes y día se evalúen como valores legales y no simplemente en los rangos de 1 a 12 y de 1 a 31, respectivamente. Por ejemplo,
'2004-04-31'
es legal con el modo estricto desactivado, pero ilegal con el modo estricto activado. Para permitir tales fechas en modo estricto, habiliteALLOW_INVALID_DATES
también. -
Trata '
"
' como un identificador delimitador de carácter (como '`
' ) y no como un delimitador de cadenas de carácteres. Puede usar '`
' para delimitar identificadores en modo ANSI. ConANSI_QUOTES
activado, puede usar doble delimitadores para delimitar una cadena de carácteres literales, ya que se interpreta como un identificador. -
Produce un error en modo estricto (de otra forma una advertencia) cuando encuentra una división por cero (o
MOD(X,0)
) durante unINSERT
oUPDATE
, o en cualquier expresión (por ejemplo, en una lista de select o cláusulaWHERE
) que implica datos de tablas y una divisón por cero. Si este modo no se da, MySQL retornaNULL
para una división por cero. Si se usaINSERT IGNORE
oUPDATE IGNORE
, MySQL genera una advertencia de división por cero, pero el resultado de la operación esNULL
. (Implmentado en MySQL 5.0.2) -
Desde MySQL 5.0.2 , la precedencia del operador
NOT
se trata tal que expresiones comoNOT a BETWEEN b AND c
se parsean comoNOT (a BETWEEN b AND c)
. Antes de MySQL 5.0.2, la expresión se parseaba como(NOT a) BETWEEN b AND c
. El antiguo comportamiento de mayor-precedencia puede obtenerse permitiendo el modo SQLHIGH_NOT_PRECEDENCE
. (Añadido en MySQL 5.0.2)mysql> SET sql_mode = ''; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 0 mysql> SET sql_mode = 'broken_not'; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 1
-
Permite nombres entre el nombre de función y el carácter '
(
' . Esto fuerza que todos los nombres de función se traten como palabras reservadas. Como resultado, si quiere acceder a cualquier base de datos, tabla, o nombre de columna que sea una palabra reservada, debe delimitarla. Por ejemplo, y como hay una funciónUSER()
, el nombre de la tablauser
en la base de datosmysql
y la columnaUser
en esa table se reseva, así que debe delimitarla:SELECT "User" FROM mysql."user";
-
Previene que
GRANT
cree automáticamente nuevos usuarios si de otra forma se haría, a no ser que se especifique un usuario. (Añadido en MySQL 5.0.2) -
NO_AUTO_VALUE_ON_ZERO
afecta el tratamiento de las columnasAUTO_INCREMENT
. Normalmente, genera el siguiente número de secuencia para la columna insertandoNULL
o0
en ella.NO_AUTO_VALUE_ON_ZERO
suprime este comportamiento para0
de forma que sóloNULL
genera el siguiente número de secuencia.Este modo puede ser útil si
0
se ha almacenado en una tabla con columnasAUTO_INCREMENT
. (Esta no es una práctica recomendada, de todos modos.) Por ejemplo, si vuelca la tabla con mysqldump y posteriormente la recarga, normalmente MySQL genera un nuevo número de secuencia cuando encuentra los valores0
, resultando en una tabla con distinto contenido que la que fue volcada. ActivarNO_AUTO_VALUE_ON_ZERO
antes de recargar el fichero con el volcado resuelve el problema. En MySQL 5.0, mysqldump incluye automáticamente en su salida un comando permitiendoNO_AUTO_VALUE_ON_ZERO
. -
Desactiva el uso del carácter de barra invertida ('
\
') como carácter de escape en cadenas de carácteres. Con este modo activado, la barra invertida se convierte en un carácter ordinario como cualquier otro. (Implementado en MySQL 5.0.1) -
Cuando crea una tabla, ignora todas las directivas
INDEX DIRECTORY
yDATA DIRECTORY
. Este opción es útil en servidores de replicación esclavos. -
NO_ENGINE_SUBSTITUTION
Evita la substitución automática de motor de almacenamiento cuando el motor deseado no está disponible o compilado.
-
No muestra opciones específicas para columnas de MySQL en la salida de
SHOW CREATE TABLE
. Este modo se usa con mysqldump en modo de portabilidad. -
No muestra opciones específicas para índices de MySQL en la salida de
SHOW CREATE TABLE
. Este modo se usa con mysqldump en modo de portabilidad. -
No muestra opciones específicas para tablas (tales como
ENGINE
) en la salida deSHOW CREATE TABLE
. Este modo se usa con mysqldump en modo de portabilidad. -
En operaciones de resta, no marca el resultado como
UNSIGNED
si uno de los operandos no tiene signo. Note que esto hace queUNSIGNED BIGINT
no sea 100% usable en todos los contextos. Consulte Sección 12.8, “Funciones y operadores de cast”. -
En modo estricto, no permite
'0000-00-00'
como fecha válida. Puede insertar fechas 0 con la opciónIGNORE
. Cuando no está en modo estricto, la fecha se acepta pero se genera una advertencia. (Añadido en MySQL 5.0.2) -
En modo estricto, no acepta fechas la parte del mes o día es 0. Se usa con la opción
IGNORE
, inserta una fecha'0000-00-00'
para cualquiera de estas fechas. Cuando no está en modo estricto, la fecha se acepta pero se genera una advertencia. (Añadido en MySQL 5.0.2) -
No permite consultas que en la parte del
GROUP BY
se refieran a una columna que no se seleccione. -
Trata
||
como un concatenador de columnas de carácteres (lo mismo queCONCAT()
) en lugar de como sinónimo deOR
. -
Trata
REAL
como un sinónimo deFLOAT
en lugar de sinónimo deDOUBLE
. -
Activa el modo estricto para todos los motores de almacenamiento. Rechaza los datos inválidos. Detalles adicionales a continuación. (Añadido en MySQL 5.0.2)
-
Habilita el modo estricto para motores de almacenamiento transaccionales, y cuando sea posible también para los no transaccionales. Detalles adicionales a continuación. (Implementado en MySQL 5.0.2)
El modo estricto controla cómo MySQL trata los valores de
entrada invalidos o no presentes. Un valor puede ser inválido
por distintas razones. Por ejemplo, puede tener un tipo de datos
incorrecto para la columna, o puede estar fuera de rango. Un
valor no está presente cuando el registro a insertarse no tiene
un valor para una columna que no tiene la cláusua
DEFAULT
explícita en su definición.
Para tablas transaccionales, se genera un error para valores
inválidos o no presentes en un comando con los modos
STRICT_ALL_TABLES
o
STRICT_TRANS_TABLES
habilitados. El comando
se aborta y deshace.
Para tablas no transaccionales, el comportamiento es el mismo para cualquier modo, si un valor incorrecto se encuentra en el primer registro a insertar o actualizar. El comando se aborta y la tabla continúa igual. Si el comando inserta o modifica varios registros y el valor incorrecto aparece en el segundo o posterior registro, el resultado depende de qué modo estricto esté habilitado:
-
Para
STRICT_ALL_TABLES
, MySQL devuelve un error e ignora el resto de los registros. Sin embargo, en este caso, los primeros registros se insertan o actualizan. Esto significa que puede producirse una actualización parcial, que puede no ser lo que desea. Para evitarlo, es mejor usar comandos de un único registro ya que pueden abortarse sin cambiar la tabla. -
Para
STRICT_TRANS_TABLES
, MySQL convierte los valores inválidos en el valor válido más próximo para la columna e inserta el nuevo valor. Si un valor no está presente, MySQL inserta el valor por defecto implícito para el tipo de la columna. En ese caso, MySQL genera una advertencia en lugar de un error y continúa procesando el comando. Los valores implícitos se describen en Sección 13.1.5, “Sintaxis deCREATE TABLE
”.
El modo estricto no permite fechas inválides como
'2004-04-31'
. Esto sigue permitiendo fechas
con partes con ceros, como 2004-04-00'
o
fechas ``cero''. Para no permitirlas tampoco, active los modos
SQL NO_ZERO_IN_DATE
y
NO_ZERO_DATE
además del modo estricto.
Si no usa el modo estricto (esto es, ni
STRICT_TRANS_TABLES
ni
STRICT_ALL_TABLES
están activados), MySQL
inserta valores ajustados para valores inválidos o no presentes
y produce advertencias. En modo estricto, puede producir este
comportamiento usando INSERT IGNORE
o
UPDATE IGNORE
. Consulte
Sección 13.5.4.22, “Sintaxis de SHOW WARNINGS
”.
Los siguientes modos especiales se proporcionan como
abreviaciones de combinaciones de modos de la lista precedente.
Todos están disponibles en MySQL 5.0 empezando en la versión
5.0.0, excepto para TRADITIONAL
, que se
implementó en MySQL 5.0.2.
La descripción incluye todos los modos que están disponibles en la reción más reciente de MySQL. Para versiones anteriores, un modo de combinación no incluye todos los modos individuales que sólo están disponibles en las versiones más recientes.
-
Equivalente a
REAL_AS_FLOAT
,PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
. Antes de MySQL 5.0.3,ANSI
también incluyeONLY_FULL_GROUP_BY
. Consulte Sección 1.7.3, “Ejecutar MySQL en modo ANSI”. -
Equivalente a
PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
. -
Equivalente a
PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
,NO_AUTO_CREATE_USER
. -
Equivalente a
PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
. -
Equivalente a
NO_FIELD_OPTIONS
,HIGH_NOT_PRECEDENCE
. -
Equivalente a
NO_FIELD_OPTIONS
,HIGH_NOT_PRECEDENCE
. -
Equivalente a
PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
,NO_AUTO_CREATE_USER
. -
Equivalente a
PIPES_AS_CONCAT
,ANSI_QUOTES
,IGNORE_SPACE
,NO_KEY_OPTIONS
,NO_TABLE_OPTIONS
,NO_FIELD_OPTIONS
. -
Equivalente a
STRICT_TRANS_TABLES
,STRICT_ALL_TABLES
,NO_ZERO_IN_DATE
,NO_ZERO_DATE
,ERROR_FOR_DIVISION_BY_ZERO
,NO_AUTO_CREATE_USER
.
El servidor mantiene varias variables de sistema que indican
cómo está configurado. Todas ellas tienen valores por defecto.
Pueden cambiarse al arrancar el servidor usando opciones en la
línea de comandos o en ficheros de opciones. La mayoría de
ellos pueden cambiarse en tiempo de ejecución usando el comando
SET
.
El servidor mysqld mantiene dos clases de variables. Las variables globales afectan las operaciones globales del servidor. Las variables de sesión afectan las operaciones para conexiones individuales de clientes.
Cuando el servidor arranca, inicializa todas las variables
globales a sus valores por defecto. Estos valores pueden
cambiarse con las opciones especificadas en los ficheros de
opciones o en la línea de comandos. Una vez que el servidor
arranca, aquellas variables globales que sean dinámicas pueden
cambiarse conectando al servidor y ejectuando el comando
SET GLOBAL
var_name
. Para cambiar una
variable global, debe tener el privilegio
SUPER
.
El servidor mantiene un conjunto de variables de sesión para
cada cliente que se conecta. Las variables de sesión del
cliente se inicializan en tiempo de conexión usando los valores
actuales de las correspondientes variables globales. Para
aquellas variables de sesión que son dinámicas, el cliente
puede cambiarlas mediante un comando SET SESSION
var_name
. Cambiar una
variable de sesión no necesita privilegios especiales, pero un
cliente puede cambiar sólo sus variables de sesión, no las de
ningún otro cliente.
Un cambio de una variable global es visible para cualquier
cliente que acceda a esa variable global. Sin embargo, esto
afecta a las correspondientes variables de sesión que se
inicializan por la variable global sólo para clientes que se
conecten después del cambio. Esto no afecta las variables de
sesión para cualquier cliente que ya esté conectado (tampoco
para los clientes que ejecuten el comando SET
GLOBAL
).
Cuando se cambia una variable usando las opciones de arranque,
los valores de la variable pueden darse con un sufijo
K
, M
, o
G
para indicar kilobytes, megabytes, o
gigabytes, respectivamente. Por ejemplo, el siguiente comando
arranca el servidor con un tamaño de key buffer de 16
megabytes:
mysqld --key_buffer_size=16M
No importa que los sufijos se escriban en mayúscula o
minúscula; 16M
y 16m
son
equivalentes.
En tiempo de ejecución, use el comando SET
para cambiar las variables de sistema. En este contexto, los
sufijos no pueden usarse, pero el valor puede tomar la forma de
una expresión:
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
Para espeficicar explícitamente si desea cambiar la variable
global o de sesión use la opción GLOBAL
o
SESSION
:
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024; mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;
Sin dicha opción, el comando actualiza la variable de sesión.
Las variables que pueden cambiarse en tiempo de ejecución se listan en Sección 5.3.3.1, “Variables de sistema dinámicas”.
Si desea restringir el valor máximo que puede tomar una
variable de sistema con el comando SET
,
puede especificarlo con
--maximum-
var_name
en el arranque del servidor. Por ejemplo, para evitar que el
valor de query_cache_size
se incremente por
encima de 32MB en tiempo de ejecución, use la opción
--maximum-query_cache_size=32M
.
Puede consultar las variables de sistema y sus valores usando el
comando SHOW VARIABLES
. Consulte
Sección 9.4, “Variables de sistema” para más información.
mysql> SHOW VARIABLES; +---------------------------------+---------------------------------------------------------+ | Variable_name | Value | +---------------------------------+---------------------------------------------------------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | automatic_sp_privileges | ON | | back_log | 50 | | basedir | / | | bdb_cache_size | 8388600 | | bdb_home | /var/lib/mysql/ | | bdb_log_buffer_size | 32768 | | bdb_logdir | | | bdb_max_lock | 10000 | | bdb_shared_data | OFF | | bdb_tmpdir | /tmp/ | | binlog_cache_size | 32768 | | bulk_insert_buffer_size | 8388608 | | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | | completion_type | 0 | | concurrent_insert | 1 | | connect_timeout | 5 | | datadir | /var/lib/mysql/ | | date_format | %Y-%m-%d | | datetime_format | %Y-%m-%d %H:%i:%s | | div_precision_increment | 4 | | default_week_format | 0 | | delay_key_write | ON | | delayed_insert_limit | 100 | | delayed_insert_timeout | 300 | | delayed_queue_size | 1000 | | expire_logs_days | 0 | | flush | OFF | | flush_time | 0 | | ft_boolean_syntax | + -><()~*:""&| | | ft_max_word_len | 84 | | ft_min_word_len | 4 | | ft_query_expansion_limit | 20 | | ft_stopword_file | (built-in) | | group_concat_max_len | 1024 | | have_archive | NO | | have_bdb | YES | | have_blackhole_engine | YES | | have_compress | YES | | have_crypt | YES | | have_csv | YES | | have_example_engine | YES | | have_federated_engine | YES | | have_geometry | YES | | have_innodb | YES | | have_isam | NO | | have_ndbcluster | DISABLED | | have_openssl | NO | | have_query_cache | YES | | have_raid | NO | | have_rtree_keys | YES | | have_symlink | YES | | init_connect | | | init_file | | | init_slave | | | innodb_additional_mem_pool_size | 1048576 | | innodb_autoextend_increment | 8 | | innodb_buffer_pool_awe_mem_mb | 0 | | innodb_buffer_pool_size | 8388608 | | innodb_checksums | ON | | innodb_concurrency_tickets | 500 | | innodb_data_file_path | ibdata1:10M:autoextend | | innodb_data_home_dir | | | innodb_doublewrite | ON | | innodb_fast_shutdown | 1 | | innodb_file_io_threads | 4 | | innodb_file_per_table | OFF | | innodb_flush_log_at_trx_commit | 1 | | innodb_flush_method | | | innodb_force_recovery | 0 | | innodb_lock_wait_timeout | 50 | | innodb_locks_unsafe_for_binlog | OFF | | innodb_log_arch_dir | | | innodb_log_archive | OFF | | innodb_log_buffer_size | 1048576 | | innodb_log_file_size | 5242880 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | ./ | | innodb_max_dirty_pages_pct | 90 | | innodb_max_purge_lag | 0 | | innodb_mirrored_log_groups | 1 | | innodb_open_files | 300 | | innodb_sync_spin_loops | 20 | | innodb_table_locks | ON | | innodb_support_xa | ON | | innodb_thread_concurrency | 8 | | innodb_thread_sleep_delay | 10000 | | interactive_timeout | 28800 | | join_buffer_size | 131072 | | key_buffer_size | 8388600 | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit | 100 | | language | /usr/share/mysql/english/ | | large_files_support | ON | | large_pages | OFF | | large_page_size | 0 | | license | GPL | | local_infile | ON | | locked_in_memory | OFF | | log | OFF | | log_bin | OFF | | log_bin_trust_routine_creators | OFF | | log_error | | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | 1 | | long_query_time | 10 | | low_priority_updates | OFF | | lower_case_file_system | OFF | | lower_case_table_names | 0 | | max_allowed_packet | 1048576 | | max_binlog_cache_size | 4294967295 | | max_binlog_size | 1073741824 | | max_connect_errors | 10 | | max_connections | 100 | | max_delayed_threads | 20 | | max_error_count | 64 | | max_heap_table_size | 16777216 | | max_insert_delayed_threads | 20 | | max_join_size | 4294967295 | | max_length_for_sort_data | 1024 | | max_relay_log_size | 0 | | max_seeks_for_key | 4294967295 | | max_sort_length | 1024 | | max_tmp_tables | 32 | | max_user_connections | 0 | | max_write_lock_count | 4294967295 | | multi_range_count | 256 | | myisam_data_pointer_size | 6 | | myisam_max_sort_file_size | 2147483647 | | myisam_recover_options | OFF | | myisam_repair_threads | 1 | | myisam_sort_buffer_size | 8388608 | | engine_condition_pushdown | OFF | | ndb_autoincrement_prefetch_sz | 32 | | ndb_force_send | ON | | ndb_use_exact_count | ON | | ndb_use_transactions | ON | | ndb_cache_check_time | 0 | | net_buffer_length | 16384 | | net_read_timeout | 30 | | net_retry_count | 10 | | net_write_timeout | 60 | | new | OFF | | old_passwords | OFF | | open_files_limit | 1024 | | optimizer_prune_level | 1 | | optimizer_search_depth | 62 | | pid_file | /var/lib/mysql/gigan.pid | | port | 3306 | | preload_buffer_size | 32768 | | protocol_version | 10 | | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 0 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | query_prealloc_size | 8192 | | range_alloc_block_size | 2048 | | read_buffer_size | 131072 | | read_only | OFF | | read_rnd_buffer_size | 262144 | | relay_log_purge | ON | | relay_log_space_limit | 0 | | rpl_recovery_rank | 0 | | secure_auth | OFF | | server_id | 0 | | skip_external_locking | ON | | skip_networking | OFF | | skip_show_database | OFF | | slave_compressed_protocol | OFF | | slave_load_tmpdir | /tmp/ | | slave_net_timeout | 3600 | | slave_skip_errors | OFF | | slave_transaction_retries | 10 | | slow_launch_time | 2 | | socket | /var/lib/mysql/mysql.sock | | sort_buffer_size | 2097144 | | sql_mode | | | storage_engine | MyISAM | | sql_notes | OFF | | sql_warnings | OFF | | sync_binlog | 0 | | sync_replication | 0 | | sync_replication_slave_id | 0 | | sync_replication_timeout | 10 | | sync_frm | ON | | system_time_zone | EST | | table_cache | 64 | | table_type | MyISAM | | thread_cache_size | 0 | | thread_stack | 196608 | | time_format | %H:%i:%s | | time_zone | SYSTEM | | timed_mutexes | OFF | | tmp_table_size | 33554432 | | tmpdir | | | transaction_alloc_block_size | 8192 | | transaction_prealloc_size | 4096 | | tx_isolation | REPEATABLE-READ | | updatable_views_with_limit | YES | | version | 5.0.7-beta-Max | | version_bdb | Sleepycat Software: Berkeley DB 4.1.24: (June 11, 2005) | | version_comment | MySQL Community Edition - Max (GPL) | | version_compile_machine | i686 | | version_compile_os | pc-linux-gnu | | wait_timeout | 28800 | +---------------------------------+---------------------------------------------------------+ 219 rows in set (0.00 sec)
La mayoría de variables de sistema se describen aquí. Las
variables sin versión indican que están presentes en todas las
versiones de MySQL 5.0. Para información histórica acerca de
sus implementaciones, consulte
Manual de referencia de MySQL 4.1. Las variables de
sistema InnoDB
están listadas en
Sección 15.4, “Opciones de arranque de InnoDB
”.
Los valores para tamaños de buffer, longitudes y tamaño de pila se dan en bytes a no ser que se especifique otra unidad.
Información sobre el ajuste de estas variables se encuentra en Sección 7.5.2, “Afinar parámetros del servidor”.
-
auto_increment_increment
auto_increment_increment
yauto_increment_offset
están pensados para usarse con replicación maestro-a-maestro, y puede usarse para controlar la operación de columnasAUTO_INCREMENT
. Ambas variables pueden cambiarse global o localmente, y cada una de ellas puede tomar un valor entre 1 y 65.535 incluídos. Cambiar el valor de estas variables a 0 causa que su valor sea 1. Intentar cambiar el valor de cualquiera de estas variables a un entero mayor que 65,535 o menor a 0 causa que su valor sea 65,535. Intentar cambiar el valor deauto_increment_increment
o deauto_increment_offset
con un valor no entero da un error, y el valor de la variable no se cambie en ese caso.Estas dos variables afectan al comportamiento de la columnas
AUTO_INCREMENT
así:-
auto_increment_increment
controla el intervalo en que se incrementa el valor de columna. Por ejemplo:mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql> CREATE TABLE autoinc1 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY); Query OK, 0 rows affected (0.04 sec) mysql> SET @auto_increment_increment=10; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 1 | +--------------------------+-------+ 2 rows in set (0.01 sec) mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT col FROM autoinc1; +-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | +-----+ 4 rows in set (0.00 sec)
(Note cómo se usa
SHOW VARIABLES
para obtener el valor actual de estas variables.) -
auto_increment_offset
determina el punto de inicio para el valor de las columnasAUTO_INCREMENT
. Considere lo siguiente, asumiendo que estos comandos se ejecutan durante la misma sesión que el ejemplo anterior:mysql> SET @auto_increment_offset=5; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 5 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql> CREATE TABLE autoinc2 (col INT NOT NULL AUTO_INCREMENT PRIMARY KEY); Query OK, 0 rows affected (0.06 sec) mysql> INSERT INTO autoinc2 VALUES (NULL), (NULL), (NULL), (NULL); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT col FROM autoinc2; +-----+ | col | +-----+ | 5 | | 15 | | 25 | | 35 | +-----+ 4 rows in set (0.02 sec)
Si el valor de
auto_increment_offset
es mayor que el deauto_increment_increment
, entonces el valorauto_increment_offset
se ignora.
Si una o ambas variables se cambian y los nuevos registros insertados en una tabla que contengan una columna
AUTO_INCREMENT
, el resultado puede ser no intuitivo, como los valores de las series deAUTO_INCREMENT
se calculan sin tener en cuenta los valores ya existentes en la columna, y el siguiente valor insertado es el menor valor de la serie que es mayor al máximo valor existente en la columnaAUTO_INCREMENT
. En otras palabras, la serie se calcula así:auto_increment_offset +
N
* auto_increment_incrementdonde
N
es un entero positivo en la serie [1, 2, 3, ...]. Por ejemplo:mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 10 | | auto_increment_offset | 5 | +--------------------------+-------+ 2 rows in set (0.00 sec) mysql> SELECT col FROM autoinc1; +-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | +-----+ 4 rows in set (0.00 sec) mysql> INSERT INTO autoinc1 VALUES (NULL), (NULL), (NULL), (NULL); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> SELECT col FROM autoinc1; +-----+ | col | +-----+ | 1 | | 11 | | 21 | | 31 | | 35 | | 45 | | 55 | | 65 | +-----+ 8 rows in set (0.00 sec)
Los valores mostrados por
auto_increment_increment
yauto_increment_offset
generan las series 5 +N
* 10, esto es, [5, 15, 25, 35, 45, ...]. El mayor valor presente en la columnacol
antes delINSERT
es 31, y el siguiente valor disponible en la serieAUTO_INCREMENT
es 35, así que los valores insertados paracol
empiezan en ese punto y los resultados se muestran para la consultaSELECT
.Es importante recordar que no es posible confinar los efectos de estas dos variables en una sola tabla, y por lo tanto no toman el lugar de la secuencia ofrecido por otros sistemas gestores de bases de datos; estas variables controlan el comportamiento de todas las columnas
AUTO_INCREMENT
en todas las tablas del servidor MySQL. Si una de estas variables se cambia globalmente, entonces sus efectos persisten hasta que el valor global se cambia o subyace al cambiarlo localmente, o hasta que se reinicia mysqld ; si se cambia localmente, entonces el nuevo valor afecta a las columnasAUTO_INCREMENT
para todas las tablas en que se inserten nuevos registros por el usuario actual durante la sesión, hasta que los valores se cambien durante esa sesión.La variable
auto_increment_increment
se añadió en MySQL 5.0.2. Su valor por defecto es 1. Consulte Capítulo 6, Replicación en MySQL. -
-
auto_increment_offset
Esta variable se añadió en MySQL 5.0.2. Su valor por defecto es 1. Para más detalles, consulte la descripción de
auto_increment_increment
. -
back_log
El numero de peticiones de conexión que puede tener MySQL. Esto se usa cuando el thread principal de MySQL recibe muchas peticiones de conexión en un pequeño lapso de tiempo. Necesita algo de tiempo (aunque muy poco) el thread principal para comprobar la conexión y empezar un nuevo thread. El valor de
back_log
indica cuántas peticiones pueden almacenarse duarnte este corto espacio de tiempo antes que MySQL temporalmente pare de responder a nuevas peticiones. Necesita incrementarlo sólo si espera un gran número de conexiones en un pequeño lapso de tiempo.En otras palabras, este valor es el tamaño de la cola que escucha conexiones TCP/IP entrantes. El sistema operativo tiene su propio límite en el tamaño de la cola. La página del manual para la llamada de sistema Unix
listen()
proporcion más detalles. Consulte la documentación del SO para el máximo valor de esta variable. Intentar cambiar el valor deback_log
por encima del límite del sistema operativo no es efectivo. -
basedir
El directorio de instalación de MySQL. Esta variable puede cambiarse con la opción
--basedir
. -
bdb_cache_size
El tamaño del buffer que se utiliza para cachear índices y registros para tablas
BDB
. Si no usa tablasBDB
debe arrancar mysqld con--skip-bdb
para no gastar memoria para esta caché. -
bdb_home
El directorio base para las tablas
BDB
tables. Debe asignarse el mismo valor que para la variabledatadir
. -
bdb_log_buffer_size
El tamaño del buffer que se utiliza para cachear índices y registros para tablas
BDB
. Si no usa tablasBDB
, debe usar el valor 0 o arrancar mysqld con--skip-bdb
para no gastar memoria con esta caché. -
bdb_logdir
El directorio en que el motor de almacenamiento
BDB
escribe sus ficheros de log. Esta variable puede cambiarse con la opción--bdb-logdir
. -
bdb_max_lock
El máximo número de bloqueos que pueden tenerse activos en una tabla
BDB
(10,000 por defecto). Debe incrementarlo si errores como los siguientes ocurren cuando realiza transacciones grandes o cuando mysqld tiene que examinar muchos registros para calcular una consulta:bdb: Lock table is out of available locks Got error 12 from ...
-
bdb_shared_data
Está
ON
si usa--bdb-shared-data
. -
bdb_tmpdir
El valor de la opción
--bdb-tmpdir
. -
bdb_version
Consulte la versión de
version_bdb
. -
binlog_cache_size
El tamaño de la caché para tratar comandos SQL para el log binario durante una transacción. La cache del log binario se guarda para cada cliente si el servidor soporta diversos motores de almacenamiento transaccionales, empezando por MySQL 4.1.2, si el servidor tiene activados los logs binarios (opción
--log-bin
). Si suele usar transacciones grandes, con múltiples comandos, puede incrementar este valor para mejorar el rendimiento. Las variables de estadoBinlog_cache_use
yBinlog_cache_disk_use
pueden ser útiles para ajustar el tamaño de estas variables. Consulte Sección 5.10.3, “El registro binario (Binary Log)”. -
bulk_insert_buffer_size
MyISAM
usa una caché especial con forma de árbol para hacer las inserciones más rápidas paraINSERT ... SELECT
,INSERT ... VALUES (...), (...), ...
, yLOAD DATA INFILE
. Esta variable limita el tamaño del árbol de la caché en bytes por thread. Cambiarlo a 0 desactiva esta optimización. Nota: Esta caché se usa sólo al añadir datos en una tabla no vacía. El valor por defecto es 8MB. -
character_set_client
El conjunto de carácteres para comandos que llegan del cliente.
-
character_set_connection
El conjunto de carácteres usado por los literales que no tienen un conjunto de carácteres introducido y para conversiones de números a cadenas de carácteres.
-
character_set_database
El conjunto de carácteres usado por la base de datos por defecto. El servidor actualiza esta variable cada vez que la base de datos por defecto cambia. Si no hay base de datos por defecto, la variable toma el mismo valor que
character_set_server
. -
character_set_results
El conjunto de carácteres usado para retornar los resultados de las consultas al cliente.
-
character_set_server
El conjunto de carácteres por defecto del servidor.
-
character_set_system
El conjunto de carácteres usado por el servidor para almacenar identificadores. El valor es siempre
utf8
. -
character_sets_dir
El directorio en el que están instalados los conjuntos de carácteres.
-
collation_connection
La colación del conjunto de carácteres de las conexiones.
-
collation_database
La colación usada por la base de datos por defecto. El servidor cambia esta variable cada vez que la base de datos por defecto cambia. Si no hay una base de datos por defecto, la variable toma el valor de
collation_server
. -
collation_server
La colación por defecto del servidor.
-
concurrent_insert
Si
ON
(por defecto), MySQL permite comandosINSERT
ySELECT
que se ejecuten concurrentemente para tablasMyISAM
que no tienen bloques libres en el medio. Puede desactivar esta opción arrancando mysqld con--safe
or--skip-new
.En MySQL 5.0.6 esta variable ha cambiado a un entero que toma 3 valores:
Valor Descripción 0 Off 1 (Defecto) Permite inserciones concurrentes para tablas MyISAM que no tienen agujeros 2 Permite inserciones concurrentes para todas las tablas MyISAM. Si la tabla tiene un agujeroy está en uso por otro thread el nuevo registro se insertará al final de la tabla. Si la tabla no está en uso, MySQL hará un bloqueo de lectura normal e insertará el registro en el agujero. -
El número de segundos que el servidor mysqld espera para un paquete de conexión antes de responder con
Bad handshake
. -
datadir
El directorio de datos de MySQL. Esta variable puede cambiarse con la opción
--datadir
. -
default_week_format
El modo a usar por la función
WEEK()
. -
delay_key_write
Esta opción se aplica sólo a tablas
MyISAM
. Puede tener uno de los siguientes valores que afectan la forma de tratar la opciónDELAY_KEY_WRITE
que puede usarse en los comandosCREATE TABLE
.Opción Descrición OFF
DELAY_KEY_WRITE
se ignora.ON
MySQL activa la opción DELAY_KEY_WRITE
paraCREATE TABLE
. Este es el valor por defecto.ALL
Todas las nuevas tablas abiertas se tratan como si se hubieran creado con la opción DELAY_KEY_WRITE
activada.Si
DELAY_KEY_WRITE
está activo, significa que el key buffer para tablas con esta opción no se vuelcan en cada actualización del índice, sino que sólo cuando se cierra una tabla. Esto acelera las escrituras de claves, pero si usa esta característica, debe añadir chequeo automático de todas las tablasMyISAM
arrancando el servidor con la opción--myisam-recover
(por ejemplo--myisam-recover=BACKUP,FORCE
). Consulte Sección 5.3.1, “Opciones del comando mysqld” y Sección 14.1.1, “Opciones de arranque deMyISAM
”.Tenga en cuenta que
--external-locking
no ofrece ninguna protección contra corrupción de índices para tablas que usan escrituras de claves retardadas. -
delayed_insert_limit
Tras insertar
delayed_insert_limit
registros retardados, el thread que se encarga delINSERT DELAYED
comprueba si hay algún comandoSELECT
pendiente. Si es así, les permite que se ejecuten antes de continuar insertando registros retardados. -
delayed_insert_timeout
Cuánto debe esperar el thread encargado de
INSERT DELAYED
para un comandoINSERT
antes de terminar. -
delayed_queue_size
Este es el límite por tabla del número de registros a encolar cuando se tratan comandos
INSERT DELAYED
. Si la cola se llena, cualquier cliente que lance un comandoINSERT DELAYED
espera hasta que haya espacio en la cola de nuevo. -
expire_logs_days
El número de días para eliminar el log binario automáticamente. El valor por defecto es 0, lo que significa ``sin eliminación automática''. Las posibles eliminaciones se realizan al arranque y en la rotación del log binario.
-
flush
Está
ON
si ha arrancado mysqld con la opción--flush
. -
flush_time
Si se asigna un valor distinto a cero, todas las tablas se cierran cada
flush_time
segundos para liberar recursos y sincronizar datos no volcados en disco. Recomendamos que esta opción se use sólo en Windows 9x o Me, o en sistemas con recursos mínimos. -
ft_boolean_syntax
La lista de operadores soportado por búsquedas full-text booleanas usando
IN BOOLEAN MODE
. Consulte Sección 12.7.1, “Búsquedas booleanas de texto completo (Full-Text)”.El valor por defecto de la variable es
'+ -><()~*:""&|'
. Las reglas para cambiar el valor son las siguientes:-
La función del operador viene determinada por su posición en la cadena de carácteres.
-
El valor de reemplazo debe tener 14 carácteres.
-
Cada carácter debe ser ASCII y no alfanumérico.
-
El primer o segundo carácter debe ser un espacio.
-
No se permiten duplicados excepto los operadores delimitadores de frase en las posiciones 11 y 12. Estos dos carácteres no tienen porqué ser los mismos, pero son los dos únicos posibles.
-
Las posiciones 10, 13, y 14 (que por defecto son '
:
', '&
', y '|
') están reservados para extensiones futuras.
-
-
ft_max_word_len
La longitud máxima de la palabra incluída en un índice
FULLTEXT
.Nota: índices
FULLTEXT
deben reconstruirse al cambiar esta variable. UseREPAIR TABLE
tbl_name
QUICK. -
ft_min_word_len
La longitud mínima de la palabra a incluirse en un índice
FULLTEXT
.Nota: índices
FULLTEXT
deben reconstruirse tras cambiar estas variables. UseREPAIR TABLE
tbl_name
QUICK. -
ft_query_expansion_limit
El número de mejores coincidencias a usar en búsquedas full-text realizadas usando
WITH QUERY EXPANSION
. -
ft_stopword_file
El fichero del que lee la lista de palabras de detención en búsquedas full-text. Todas las palabras del fichero se usan; los comentarios no se tienen en cuenta. Por defecto, se usa una lista de palabras de detención ( como se define en el fichero
myisam/ft_static.c
). Actualizar esta variable con una cadena vacía (''
) desactiva el filtrado de palabras de detención.Nota: índices
FULLTEXT
deben reconstruirse tras cambiar esta variable o los contenidos del fichero de palabras de detención. UseREPAIR TABLE
tbl_name
QUICK. -
group_concat_max_len
El valor máximo permitido para la longitud del resultado de la función
GROUP_CONCAT()
. -
have_archive
YES
si mysqld soporta tablasARCHIVE
,NO
si no. -
have_bdb
YES
si mysqld soporta tablasBDB
.DISABLED
si se usa--skip-bdb
. -
have_compress
Si está disponible la biblioteca de compresión
zlib
en el servidor. Si no lo está, las funcionesCOMPRESS()
yUNCOMPRESS()
no pueden usarse. -
have_crypt
Si la llamada de sistema
crypt()
está disponible en el servidor. Si no, la funciónCRYPT()
no puede usarse. -
have_csv
YES
si mysqld soporta tablasARCHIVE
,NO
si no. -
have_example_engine
YES
si mysqld soporta tablasEXAMPLE
,NO
si no.have_federated_engine
YES
si mysqld soporta tablasFEDERATED
,NO
si no. Esta variable se añadió en MySQL 5.0.3. -
have_geometry
Si el servidor soporta tipos de datos espaciales.
-
have_innodb
YES
si mysqld soporta tablasInnoDB
.DISABLED
si se usa--skip-innodb
. -
have_isam
En MySQL 5.0, esto aparece sólo por razones de compatibilidad con versiones anteriores, y siempre es
NO
, ya que no hay soporte para tablasISAM
. -
have_ndbcluster
YES
si mysqld soporta tablasNDB Cluster
.DISABLED
si se usa--skip-ndbcluster
. -
have_openssl
YES
si mysqld soporta SSL (encriptación) del protocolo cliente/servidor. -
have_query_cache
YES
si mysqld soporta la cache de consultas. -
have_raid
YES
si mysqld soporta la opciónRAID
. -
have_rtree_keys
Si los índices
RTREE
están disponibles. (Se usan para indexación espacial en tablasMyISAM
.) -
have_symlink
Si el soporte para enlaces simbólicos está activado. Es un requesito en Unix para soporte de las opciones de tabla
DATA DIRECTORY
yINDEX DIRECTORY
. -
init_connect
Una cadena de carácteres que ejecuta el servidor para cada cliente que se conecta. La cadena consiste en uno o más comandos SQL. Para especificar varios comandos, sepárelos con un punto y coma. Por ejemplo, cada cliente arranca por defecto con modo autocommit activado. No hay ninguna variable de servidor global para especificar que autocommit esté desactivado por defecto, pero puede usar
init_connect
para conseguir el mismo efecto:SET GLOBAL init_connect='SET AUTOCOMMIT=0';
Esta variable puede cambiarse en la línea de comandos o en un fichero de opciones. Para cambiar la variable tal y como se ha mostrado usando un fichero de opciones, incluya las siguientes líneas:
[mysqld] init_connect='SET AUTOCOMMIT=0'
Tenga en cuenta que el contenido de
init_connect
no se ejecuta para usuarios con el privilegioSUPER
; esto es para el caso que el contenido se haya introducido incorrectamente (contiene una consulta incorrecta, por ejemplo con un error de sintaxis), haciendo que todas las conexiones fallen. No ejecutarlo para usuariosSUPER
permite que éstos abran una conexión y arregleninit_connect
. -
init_file
El nombre del fichero especificado con la opción
--init-file
cuando arranca el servidor. Este fichero contiene comandos SQL que se ejecutan al arrancar el servidor. Cada comando debe estar en una única línea y no debe incluir comentarios. -
init_slave
Esta variable es similar a
init_connect
, pero es una cadena de carácteres que se ejecuta por parte de un servidor esclavo cada vez que el thread SQL arranca. El formato de la cadena de carácteres es el mismo que para la variableinit_connect
. -
innodb_
xxx
Las variables
InnoDB
de sistema se listan en Sección 15.4, “Opciones de arranque deInnoDB
”. -
interactive_timeout
El número de segundos que espera el servidor para actividad en una conexión interactiva antes de cerrarla. Un cliente interactivo se define como un cliente que usa la opción
CLIENT_INTERACTIVE
paramysql_real_connect()
. Consulte tambiénwait_timeout
. -
join_buffer_size
El tamaño del buffer que se usa para full joins (joins que no usan índices). Normalmente la mejor forma de conseguir joins rápidos es añadir índices. Incrementar el valor de
join_buffer_size
para obtener un full join más rápido cuando se añaden índices no es posible. Un buffer para joins se reserva para cada full join entre dos tablas. Para un join complejo entre varias tablas en que sus índices no se usan, buffers para joins múltiples pueden ser necesarios. -
Los bloques de índices para tablas
MyISAM
yISAM
se guardan en buffers y se comparten para todos los threads.key_buffer_size
es el tamaño del buffer usado para los bloques de índices. El key buffer también se conoce como la key cache.El tamaño máximo permitido para
key_buffer_size
es 4GB. El máximo tamaño efectivo puede ser menor, dependiendo de la memoria RAM física y los límites por proceso de RAM impuestos por el sistema operativo o la plataforma hardware.Incremente el valor para obtener un mejor tratamiento de índices (para todas las lecturas y escrituras múltiples) al máximo que pueda permitirse. El uso de un valor que sea el 25% del total de memoria en una máquina que principalmente ejecute MySQL es bastante común. Sin embargo, si el valor es demasiado grande (por ejemplo, más del 50% del total de la memoria) el sistema puede empezar a paginar y ser extremadamente lento. MySQL confía en el sistema operativo para tratar el cacheo del sistema de ficheros para las lecturas de datos, así que debe dejar algún espacio para cachear el sistema de ficheros.
Para más velocidad al escribir varios registros al mismo tiempo , use
LOCK TABLES
. Consulte Sección 13.4.5, “Sintaxis deLOCK TABLES
yUNLOCK TABLES
”.Puede chequear el rendimiento del key buffer con el comando
SHOW STATUS
y examinando las variables de estadoKey_read_requests
,Key_reads
,Key_write_requests
, yKey_writes
. Consulte Sección 13.5.4, “Sintaxis deSHOW
”.El ratio
Key_reads/Key_read_requests
normalmente debe ser menor a 0.01. El ratioKey_writes/Key_write_requests
normalmente está cerca de 1 si usa mayoritariamente actualizaciones y borrados, pero puede ser mucho menor si tiende a hacer actualizaciones que afecten a muchos registros al mismo tiempo o si usa la opción de tablaDELAY_KEY_WRITE
.La fracción del key buffer en uso puede determinarse mediante
key_buffer_size
conjuntamente con la variable de estadoKey_blocks_unused
y el tamaño de bloque del buffer. El tamaño de bloque del buffer está disponible en la variable de servidorkey_cache_block_size
. La fracción del buffer en uso es:1 - ((Key_blocks_unused * key_cache_block_size) / key_buffer_size)
Este valor es una aproximación ya que algún espacio del key buffer puede estar reservado internamente para estructuras administrativas.
En MySQL 5.0, es posible crear múltiples key caches para tablas MyISAM. El límite de tamaño de 4GB se aplica a cada caché individualmente, no como grupo. Consulte Sección 7.4.6, “La caché de claves de
MyISAM
”. -
key_cache_age_threshold
Este valor controla la demotion de buffers desde la sub-cadena caliente de una key cache a la sub-cadena templada. Los valores más pequeño provocan que la demotion ocurra más rápidamenet. El valor mínimo es 100. El valor por defecto es 300. Consulte Sección 7.4.6, “La caché de claves de
MyISAM
”. -
key_cache_block_size
El tamaño en bytes de los bloques de la key cache. El valor por defecto es 1024. Consulte Sección 7.4.6, “La caché de claves de
MyISAM
”. -
key_cache_division_limit
El punto de división entre las sub-cadenas calientes y tempaladas de la cadena del buffer de la key cache. El valor es el porcentaje de la cadena del buffer para usar en la sub-cadena templada. El rango de los valores permitidos es de 1 a 100. El valor por defecto es 100. Consulte Sección 7.4.6, “La caché de claves de
MyISAM
”. -
language
El idioma usado para los lenguajes de error.
-
large_file_support
Si mysqld está compilado con la opción de soporte para grandes ficheros.
-
large_pages
Indica si está activado el soporte para páginas grandes. Esta variable se añadió en MySQL 5.0.3.
-
license
El tipo de licencia que tiene el servidor.
-
local_infile
Si
LOCAL
está soportado para comandosLOAD DATA INFILE
. -
locked_in_memory
Si mysqld está bloqueado en memoria con
--memlock
. -
log
Si el logueo de todas las consultas en el log general de consultas está activado. Consulte Sección 5.10.2, “El registro general de consultas”.
-
log_bin
Si el log binario está activado. Consulte Sección 5.10.3, “El registro binario (Binary Log)”.
-
log_bin_trust_routine_creators
Esta variable se aplica cuando el log binario está activado. Controla si los creadores de rutinas almacenadas son o no de confianza para crear rutinas almacenadas que escribirán eventos no seguros en el log binario. Si está a 0 (por defecto), los usuarios no tienen permiso para crear o cambiar rutinas almacenadas a no ser que tengan el privilegio
SUPER
además del privilegioCREATE ROUTINE
oALTER ROUTINE
.Asignar el valor 0 fuerza la restricción que una rutina debe declararse con la característica
DETERMINISTIC
, o con las característicasREADS SQL DATA
oNO SQL
. Si la variable tiene el valor 1, MySQL no fuerza esta restricción en la creación de rutinas almacenadas.Consulte Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”.
Esta variable se añadió en MySQL 5.0.6.
-
log_error
La localización del log de errores.
-
log_slave_updates
Si las actualizaciones recibidas por un servidor esclavo de un servidor maestro deben loguearse en el log binario del servidor esclavo. El logueo binario debe estar disponible en el esclavo para que tenga efecto. Consulte Sección 6.8, “Opciones de arranque de replicación”.
-
log_slow_queries
Si una consulta lenta debe loguearse. ``Lenta'' está determinado por el valor de la variable
long_query_time
. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”. -
log_warnings
Si produce mensajes de advertencia adicionales. Está activado por defecto. Las conexiones abortadas no se loguean en el log de error a no ser que el valor sea mayor a 1.
-
long_query_time
Si una consulta dura más que este valor en segundos, la variable de estado
Slow_queries
se incrementa. Si está usando la opción--log-slow-queries
, la consulta se loguea en el fichero de log para consultas lentas. Este valor se mide en tiempo real, no tiempo de CPU, así que una consulta que esté bajo el umbral en un sistema con poca carga puede estar por encima del umbral en un sistema con mucha carga. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”. -
low_priority_updates
Con el valor
1
, todos los comandosINSERT
,UPDATE
,DELETE
, yLOCK TABLE WRITE
esperan hasta que no hayan pendientesSELECT
oLOCK TABLE READ
en la tabla afectada. Esta variable se llamaba préviamentesql_low_priority_updates
. -
lower_case_file_system
Esta variable indica si el sistema de ficheros donde el directorio de datos está localizado tiene nombres de ficheros no sensibles a mayúsculas y minúsculas.
ON
significa que los nombres del fichero no son sensibles a mayúsculas y minúsculas,OFF
significa que son sensibles a mayúsculas y minúsculas. -
lower_case_table_names
Con el valor 1, los nombres de tablas se almacenan en minúsuculas en disco y las comparaciones de nombres de tablas no tienen en cuenta mayúsculas y minúsculas. Esta opción también se aplica a nombres de bases de datos y alias de tablas. Consulte Sección 9.2.2, “Sensibilidad a mayúsuclas y minúsculas de identificadores”.
Si usa tablas
InnoDB
, debe asignar a esta variable el valor 1 en todas las plataformas para forzar que los nombres se conviertan a minúsculas.No debe asignar a esta variable el valor 0 si está ejecutando MySQL en un sistema que no tiene nombres de ficheros sensibles a mayúsculas y minúsculas (tales como Windows o Mac OS X). Si esta variable no tiene un valor al arrancar y el sistema de ficheros donde está localizado el directorio de datos no tiene nombres de ficheros sensibles a mayúsculas y minúsculas, MySQL automáticamente asigna a
lower_case_table_names
el valor 2. -
max_allowed_packet
El tamaño máximo de un paquete o cualquier cadena de carácteres generada/intermedia.
El buffer de paquetes de mensajes se inicializa a
net_buffer_length
bytes, pero puede crecer hastamax_allowed_packet
bytes cuando sea necesario. Este valor por defecto es pequeño, para recibir paquetes grandes (posiblemente incorrectos).Debe incrementar este valor si está usando columnas grandes
BLOB
o cadenas de carácteres largas. Debe ser tan grande como el mayorBLOB
que quiera usar. En MySQL 5.0, el límite del protocolo paramax_allowed_packet
es 1GB. -
max_binlog_cache_size
Si una transacción con múltiples comandos requiere más que esta cantidad de memoria, obtiene el error
Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage
. -
max_binlog_size
Si una escritura en el log binario excede el valor dado, rota el log binario. No puede cambiar este valor a más de 1GB o a menos de 4096 bytes. El valor por defecto es 1GB.
Nota en caso que use transacciones: Una transacción se escribe en un trozo del log binario, así que nunca se trocea entre varios logs binarios. Por lo tanto, si tiene transacciones grandes, puede ver logs binarios mayores que
max_binlog_size
.Si
max_relay_log_size
es 0, el valor demax_binlog_size
se aplica a relay logs también. -
max_connect_errors
Si hay más que este número de conexiones interrumpidas de un equipo, este equipo se bloquea para más conexiones. Puede desbloquear equipos bloqueados con el comando
FLUSH HOSTS
. -
max_connections
El número de conexiones de cliente simultáneas permitidas. Incrementar este valor incrementa el número de descriptores de fichero que requiere mysqld . Consulte Sección 7.4.8, “Cómo abre y cierra tablas MySQL” para comentarios sobre límites en los descriptores de fichero. Consulte también Sección A.2.6, “
Too many connections
”. -
max_delayed_threads
No arranque más que este número de threads para tratar comandos
INSERT DELAYED
. Si trata de insertar datos en una nueva tabla después de que todos los threadsINSERT DELAYED
estén en uso, el registro se inserta como si el atributoDELAYED
no se hubiera especificado. Si cambia este valor a 0, MySQL nunca crea un thread para tratar registrosDELAYED
; en efecto, esto desactivaDELAYED
completamente. -
max_error_count
El número máximo de mensajes de error, advertencia, y notas que se guardan para mostrar con
SHOW ERRORS
oSHOW WARNINGS
. -
max_heap_table_size
Esta variable cambia el máximo valor para el que las tablas
MEMORY
(HEAP
) pueden crecer. El valor de la variable se usa para calcular el valorMAX_ROWS
en tablasMEMORY
. Cambiar esta variable no tiene efecto en ninguna tablaMEMORY
existente, a no ser que la tabla se recree con un comando tal comoCREATE TABLE
oTRUNCATE TABLE
, o cambiada conALTER TABLE
. -
max_insert_delayed_threads
Esta variable es sinónimo de
max_delayed_threads
. -
max_join_size
No permite los comandos
SELECT
que probablemente tengan que examinar más demax_join_size
registros (para comandos en una misma tabla) o combinaciones de registros (para comandos con varias tablas) o que sea probable que hagan más demax_join_size
búsquedas de disco. Al cambiar este valor, puede cazar los comandosSELECT
donde las claves no se usan correctamente y que probablemente tardaran mucho tiempo. Cámbielo si sus usuarios tienden a realizar joins sin una cláusulaWHERE
, que tarden mucho tiempo, o que devuelvan millones de registros.Al cambiar esta variable a un valor que no sea
DEFAULT
resetea el valor deSQL_BIG_SELECTS
a0
. Si cambia el valorSQL_BIG_SELECTS
de nuevo, la variablemax_join_size
se ignora.Si el resultado de una consulta está en la caché de consultas, no se hace el chequeo del tamaño del resultado, ya que el resultado se ha computado préviamente y no carga al servidor al enviarlo al cliente.
Esta variable préviamente se llamaba
sql_max_join_size
. -
max_length_for_sort_data
El límite en el tamaño del índice que determina qué algoritmo
filesort
se usa. Consulte Sección 7.2.10, “Cómo optimiza MySQLORDER BY
”. -
max_relay_log_size
Si una escritura de un esclavo de replicación a su relay log excede el valor dado, rota el relay log. Esta variable le permite poner diferentes restricciones de tamaño en logs binarios y relay logs. Sin embargo, cambiar la variable a 0 hace que MySQL use
max_binlog_size
para el log binario y el relay log. Debe asignar un valor amax_relay_log_size
entre 4096 bytes y 1GB (incluídos), o 0. El valor por defecto es 0. Consulte Sección 6.3, “Detalles de la implementación de la replicación”. -
max_seeks_for_key
Limita el máximo número de búsquedas al buscar registros basados en una clave. El optimizador de MySQL asume que no se requieren más que este número de búsquedas de claves al buscar registros en una tabla al escanear una clave, a pesar de la cardinalidad real de la clave (consulte Sección 13.5.4.11, “Sintaxis de
SHOW INDEX
”). Si se pone un valor pequeño (100?), puede forzar a MySQL a que prefiera claves en lugar de escaneos de tablas. -
max_sort_length
Número de bytes que se usan al ordenar valores
BLOB
oTEXT
. Sólo los primerosmax_sort_length
bytes cada valor se usan; el resto se ignoran. -
max_tmp_tables
El número máximo de tablas temporales que un cliente puede mantener abiertas al mismo tiempo. (Esta opción todavía no hace nada.)
-
max_user_connections
El número máximo de conexiones simultáneas permitidas para cualquier cuenta MySQL dada. Un valor 0 significa ``sin límites.''
Antes de MySQL 5.0.3, esta variable sólo tenía visibilidad global. A partir de MySQL 5.0.3, también tiene visibilidad para sesiones de sólo lectura. La variable de sesión tiene el mismo valor que la variable global a no ser que la cuenta actual tenga un valor diferente a 0 en el límite de recursos
MAX_USER_CONNECTIONS
. En este caso, el valor de sesión refleja el límite de la cuenta. -
max_write_lock_count
Después de varios bloqueos de escritura, permite que algunos bloqueos de lectura se ejecuten en medio.
-
multi_read_range
Especifica el máximo número de rangos a enviar a un motor de almacenamiento durante la selección de rangos. El valor por defecto es 256. Enviar múltiples rangos a un motor es una característica que puede mejorar el rendimiento de ciertas selecciones dramáticamente, particularmente para
NDBCLUSTER
. Este motor necesita enviar la petición de rangos a todos los nodos, y enviar muchas de estas peticiones a la vez reduce el coste de comunicación significativamente. Esta variable se añadió en MySQL 5.0.3. -
myisam_data_pointer_size
El tamaño por defecto para punteros en bytes, para ser usado con
CREATE TABLE
para tablasMyISAM
cuando no se especifica la opciónMAX_ROWS
. Esta variable no puede ser menor que 2 ni mayor que 7. El valor por defecto es 4. Consulte Sección A.2.11, “The table is full
”. -
(OBSOLETO)
myisam_max_extra_sort_file_size
Si el fichero temporal usado para índexación rápida
MyISAM
es mayor que usando la key cache con la cantidad especificada aquí, se utiliza preferentemente el método de la key cache. Esto se usa para forzar que las claves largas de carácteres en grandes tablas usen el método de de key cache (más lento) para crear el índice. Este valor se da en bytes.Nota: Esta variable se eliminó en MySQL 5.0.6.
-
myisam_max_sort_file_size
El tamaño máximo para tablas temporales que MySQL permite para recrear un índice
MyISAM
(duranteREPAIR TABLE
,ALTER TABLE
, oLOAD DATA INFILE
). Si el tamaño del fichero fuese mayor que este valor, el índice se crea usando la key cache en su lugar, lo cual es más lento. El valor se da en bytes. -
myisam_recover_options
El valor para la opción
--myisam-recover
. -
myisam_repair_threads
Si este valor es mayor que 1, los índices de tablas
MyISAM
se crean en paralelo (cada índice en su propio thread) durante el procesoRepair by sorting
. El valor por defecto es 1. Nota: Reparación multi-threaded repair todavía es código con calidad alpha. -
myisam_sort_buffer_size
El buffer que se reserva al ordenar índices
MyISAM
duranteREPAIR TABLE
o al crear índices conCREATE INDEX
oALTER TABLE
. -
named_pipe
(Sólo en Windows.) Indica si el servidor soporta conexiones sobre named pipes.
-
net_buffer_length
El buffer de comunicación se resetea a este tamaño entre consultas. Normalmente, debe cambiarse, pero si tiene poca memoria, puede inicializarse al tamaño esperado para los comandos SQL enviados por los clientes. Si los comandos exceden este tamaño, el buffer crece automáticamente, hasta
max_allowed_packet
bytes. -
net_read_timeout
El número de segundos a esperar más datos de una conexión antes de abortar la lectura. Cuando el servidor está leyendo del cliente,
net_read_timeout
es el valor que controla el tiempo máximo para abortar. Cuando el servidor está escribiendo en el cliente,net_write_timeout
es el valor que controla el tiempo máximo para abortar. Consulte tambiénslave_net_timeout
. -
net_retry_count
Si una lectura en un puerto de comunicaciones se interrumpe, reintenta las veces especificadas antes de abandonar. Este valor debe inicializarse a un valor alto en FreeBSD, ya que las interrupciones internas se envían a todos los threads.
-
net_write_timeout
Número de segundos a esperar para que se escriba un bloque en una conexión antes de abortar la escritura. Consulte también
net_read_timeout
. -
new
Esta variable se usaba en MySQL 4.0 para activar algunos comportamientos de la versión 4.1 y se mantiene para compatibilidad con versiones anteriores. En MySQL 5.0, el valor siempre es
OFF
. -
old_passwords
Si el servidor debe usar contraseñas estilo anterior a la versión 4.1 para cuentas de usuario de MySQL. Consulte Sección A.2.3, “
Client does not support authentication protocol
”. -
open_files_limit
Número de ficheros que el sistema operativo permite abrir mysqld . Este es el valor real permitido por el sistema y puede ser distinto del valor que se da a mysqld al arrancar. El valor es 0 en sistemas donde MySQL puede cambiar el número de ficheros abiertos.
-
optimizer_prune_level
Controla el heurístico aplicado durante la optimización de consultas para no hacer los planes parciales menos prometedores en el espacio de búsqueda del optimizador. Un valor de 0 desactiva el heurístico de forma que el optimizador realiza una búsqueda exhaustiva. Un valor de 1 provoca que el optimizador elimine planes basados en el número de registros calculados por planes intermedios. Esta variable se añadió en MySQL 5.0.1.
-
optimizer_search_depth
La máxima profundidad de búsqueda realizada por el optimizador de consultas. Valores mayores que el número de relaciones en una consulta dan como resultado en mejores planes de consulta, pero lleva más tiempo generar un plan de ejecución para una consulta. Los valores menores que el número de relaciones en una consulta retornan un plan de ejecución más rápido, pero el plan resultante puede estar lejos de ser el plan óptimo. Si se usa como valor 0, el sistema automáticamente escoge un valor razonable. Si se asigna como valor el máximo número de tablas usado en una consulta más 2, el optimizador cambia al algoritmo usado en MySQL 5.0.0 ( y versiones anteriores ) para mejorar el rendimiento de las búsquedas. Esta variable se añadió en MySQL 5.0.1.
-
pid_file
La ruta al fichero con el ID de proceso (PID). Esta variable puede cambiarse con la opción
--pid-file
. -
port
El puerto en que escucha el servidor para conexiones TCP/IP. Esta variable puede cambiarse con la opción
--port
. -
preload_buffer_size
El tamaño del buffer que se reserva al pre-cargar los índices.
-
protocol_version
La versión del protocolo cliente/servidor usado por el servidor MySQL.
-
query_alloc_block_size
El tamaño de bloques de memoria reservado para objetos creados durante el parseo y ejecución de consultas. Si tiene problemas con fragmentación de memoria, puede ayudar incrementar este valor un poco.
-
query_cache_limit
No cachea resultados mayores que este número de bytes. El valor por defecto es 1048576 (1MB).
-
query_cache_min_res_unit
Tamaño mínimo (en bytes) para bloques reservados en la caché de consultas. El valor por defecto es 4096 (4KB). Para más información acerca de optimizar esta variable consulte Sección 5.12.3, “Configuración de la caché de consultas”.
-
query_cache_size
La cantidad de memoria reservada para cachear resultados de consultas. El valor por defecto es 0, lo que desactiva la cache de consultas. Tenga en cuenta que la cantidad de memoria se reserva incluso si
query_cache_type
tiene como valor 0. Consulte Sección 5.12.3, “Configuración de la caché de consultas” para más información. -
query_cache_type
Cambia el tipo de la caché de consultas. Cambiando el valor
GLOBAL
se inicializa el tipo para todos los clientes que se conecten a partir de ese momento. Clientes individuales pueden cambiar el valorSESSION
para afectar a su propio uso de la caché de consultas. Los posibles valores se muestran en la siguiente tabla:Opción Descripción 0
oOFF
No cachea o retorna los resultados. Tenga en cuenta que esto no elimina el buffer caché para consultas. Para hacerlo, debe asignar 0 a query_cache_size
.1
oON
Cachea todos los resultados de consultas excepto los que empiecen con SELECT SQL_NO_CACHE
.2
oDEMAND
Cachea los resultados sólo para consultas que comiencen con SELECT SQL_CACHE
.En MySQL 5.0, el valor por defecto de esta variable es
ON
. -
query_cache_wlock_invalidate
Normalmente, cuando un cliente adquiere un bloqueo
WRITE
en una tablaMyISAM
, el resto de clientes no se bloquean para consultas cuyo resultado esté presente en la caché para consultas. Cambiando el valor de esta variable a 1 provoca que la adquisición de una tabla mediante un bloqueoWRITE
invalida cualquier consulta en la caché de consultas que se refiera a la tabla. Esto fuerza a que otros clientes que traten de acceder a la tabla esperen mientras el bloqueo esté activo. -
query_prealloc_size
El tamaño del buffer persistente usado para parsear y ejecutar consultas. Este buffer no se libera entre consultas. Si está ejecutando consultas complejas, un valor mayor de
query_prealloc_size
puede ser de utilidad para mejorar el rendimiento, ya que puede reducir la necesidad del servidor de realizar reserva de memoria durante las operaciones de ejecución de consultas. -
range_alloc_block_size
El tamaño de los bloques que se reservan en la optimización de rango.
-
read_buffer_size
Cada thread que realiza un escaneo secuencial reserva un buffer de su tamaño (en bytes) para cada tabla que escanea. Si realiza muchos escaneos secuenciales, puede incrementar este valor, que por defecto es 131072.
-
read_only
Cuando una variable tiene el valor
ON
para un servidor esclavo de replicación, esto causa que el esclavo no permita actualizaciones excepto de threads de esclavos o de usuarios con el privilegioSUPER
. Esto puede ser útil para asegurar que un servidor esclavo no acepte actualizaciones de los clientes. -
relay_log_purge
Desactiva o activa el purgado automático de los relay logs tan pronto como no se necesitan. El valor por defecto es 1 (activado).
-
read_rnd_buffer_size
Cuando se leen registros ordenadamante tras una ordenación, los registros se leen a través de su buffer para evitar búsquedas en disco. Asignar a esta variable un valor mayor puede mejorar mucho el rendimiento de
ORDER BY
. Sin embargo, hay un buffer para cada cliente, así que no debe asignar un valor grande a la variable global. En lugar de ello, cambie la variable de sesión sólo en los clientes que necesiten ejecutar grandes consultas. -
secure_auth
Si el servidor MySQL ha arrancado con la opción
--secure-auth
, bloquea conexiones de todas las cuentas que tengan las contraseñas almacenadas en el formato antiguo (anterior a 4.1). En ese caso, el valor de esta variable esON
, en el contrario esOFF
.Debe activar esta opción si quiere evitar todo uso de contraseñas en el viejo formato (y por lo tanto comunicación insegura en la red).
El arranque del servidor falla con un error si esta opción está activada y la tablas de privilegios están en formato anterior a 4.1. Consulte Sección A.2.3, “
Client does not support authentication protocol
”.Cuando se usa como una opción del lado del cliente, el cliente rehúsa conectar a un servidor si el servidor requiere contraseña en el viejo formato para la cuenta del cliente.
-
server_id
El valor de la opción
--server-id
. Se usa para servidores de replicación maestros y esclavos. -
shared_memory
(Sólo en Windows.) Si el cliente permite conexiones a través de memoria compartida o no.
-
shared_memory_base_name
(Sólo en Windows.) Indica si el servidor permite conexiones a través de memoria compartida, e indica el identificador para memoria compartida. Esto es útil al ejecutar varias instancias de MySQL en una única máquina física.
-
skip_external_locking
Está
OFF
si mysqld usa bloqueo externo. -
skip_networking
Está
ON
si el servidor permite sólo conexiones locales (no TCP/IP). En Unix, las conexiones locales usan un fichero socket de Unix. En Windows, las conexiones locales usan named pipes o memoria compartida. En NetWare, sólo se soportan conexiones TCP/IP, así que no asigne a esta variable el valorON
. -
skip_show_database
Evita que se use el comando
SHOW DATABASES
sin tener el privilegioSHOW DATABASES
. Esto puede mejorar la seguridad si le preocupa que los usuarios puedan ver las bases de datos pertenecientes a otros usuarios. En MySQL 5.0, su efecto depende del privilegioSHOW DATABASES
: Si el valor de la variable esON
, el comandoSHOW DATABASES
está permitido sólo para usuarios que tengan el privilegioSHOW DATABASES
, y el comando muestra todos los nombres de bases de datos. Si el valor esOFF
,SHOW DATABASES
se permite para todos los usuarios, pero sólo muestra los nombres de bases de datos que el usuario tenga el permisoSHOW DATABASES
u otros privilegios. -
slave_compressed_protocol
Si usa compresión en el protocolo maestro/servidor si ambos lo soportan.
-
slave_load_tmpdir
El nombre del directorio donde el esclavo crea ficheros temporales para replicar el comando
LOAD DATA INFILE
. -
slave_net_timeout
Número de segundos a esperar para más datos en una conexión maestro/ servidor antes de abortar la lectura.
-
slave_skip_errors
Los errores de replicación que el esclavo debe dejar pasar (ignorar).
-
slow_launch_time
Si la creación de un thread toma más de los segundos especificados por esta variable, el sevidor incrementa la variable de estado
Slow_launch_threads
. -
socket
Plataformas Unix: El fichero socket usado para conexiones clientes locales. Por defecto
/var/lib/mysql/mysql.sock
.Windows: El nombre del named pipe usado para conexiones cliente locales. Por defecto
mysql
. -
sort_buffer_size
Cada thread que necesita una ordenación reserva un buffer de su tamaño. El incremento de este valor permite acelerar las operaciones
ORDER BY
oGROUP BY
. Consulte Sección A.4.4, “Dónde almacena MySQL los archivos temporales”. -
sql_mode
El modo del servidor SQL, que en MySQL 5.0 puede cambiarse dinámicamente. Consulte Sección 5.3.2, “El modo SQL del servidor”.
-
sql_slave_skip_counter
El número de eventos del maestro que el servidor esclavo debe ignorar.
-
storage_engine
Esta variable es un sinónimo de
table_type
. En MySQL 5.0,storage_engine
es el nombre preferido. -
sync_binlog
Si es positivo, el servidor MySQL sincroniza su log binario a disco (
fdatasync()
) después de cada escriturasync_binlog
en su log binario. Tenga en cuenta que sólo hay una escritura en el log binario por comando si está en modo autocommit, y de otra forma una escritura por transacción. El valor por defecto es 0 lo que no sincroniza con disco. Un valor de 1 es la elección más segura, ya que en caso de error se pierden como mucho un comando/transacción del log binario; de todas formas, también es el valor más bajo (a no ser que el disco tenga una caché de batería, lo que hace la sincronización muy rápida). -
sync_frm
Si esta variable se asigna a 1, cuando se crea una tabla no temporal su fichero
.frm
se sincroniza a disco (fdatasync()
); esto es lo más lento pero más seguro en caso de un error. El valor por defecto es 1. -
system_time_zone
La zona horaria del servidor. Cuando el sevidor comienza la ejecución, hereda unos valores de zona horaria de los valores por defecto de la máquina, posiblemente modificados por el entorno de la cuenta usado para ejecutar el servidor o el script de arranque. El valor se usa para asignar
system_time_zone
. Normalmente la zona horaria se especifica con la variable de entornoTZ
. También puede especificarse usando la opción--timezone
del script mysqld_safe . -
table_cache
El número de tablas abiertas por todos los threads. Incrementar este valor incrementa el número de descriptores de ficheros que requiere mysqld . Puede chequear si necesita incrementar la caché de la tabla chequeando la variable de estado
Opened_tables
. Consulte Sección 5.3.4, “Variables de estado del servidor”. Si el valor deOpened_tables
es grande y no quiere hacer muchosFLUSH TABLES
(lo que fuerza a cerrar y reabrir todas las tablas), entonces debe incrementar el valor de la variabletable_cache
.Para más información sobre la cache de la tabla, consulte Sección 7.4.8, “Cómo abre y cierra tablas MySQL”.
-
table_type
El tipo de tabla por defecto (motor de almacenamiento). Para cambiar el tipo de tabla en el arranque del servidor, use la opción
--default-table-type
. Consulte Sección 5.3.1, “Opciones del comando mysqld”. -
thread_cache_size
El número de threads que el servidor debe cachear para reusar. Cuando un cliente desconecta, los threads de clientes se ponen en la caché si hay menos de
thread_cache_size
threads. Peticiones de threads se sirven reusando threads tomados de la caché cuando es posible. Esta variable puede incrementarse para mejorar el rendimiento si tiene muchas nuevas conexiones. (Normalmente esto no da una mejora notable de rendimiento si tiene una buena implementación de threads.) Mediante el estudio de las diferencias entre las variables de estadoConnections
yThreads_created
(consulte Sección 5.3.4, “Variables de estado del servidor” para más detalles) puede ver lo eficiente que es la caché de threads. -
thread_concurrency
En Solaris, mysqld llama a
thr_setconcurrency()
con este valor. Esta función permite a las aplicaciones dar al sistema de threads una piesta sobre el número deseado de threads que deben ejecutarse simultáneamente. -
thread_stack
El tamaño de la pila para cada thread. Muchos de los límites detectados por el test
crash-me
dependen de este valor. El valor por defecto es lo suficientemente grande para un funcionamiento normal. Consulte Sección 7.1.4, “El paquete de pruebas de rendimiento (benchmarks) de MySQL”. -
time_zone
La zona horaria. El valor inical de este
'SYSTEMA'
(usa el valor desystem_time_zone
), pero puede especificarse explícitamente al arrancar el servidor con la opción--default-time-zone
. -
tmp_table_size
Si una tabla temporal en memoria excede este tamaño, MySQL la convierte automáticamente en una tabla en disco de tipo
MyISAM
. Incremente el valor detmp_table_size
si realiza muchas consultas avanzadasGROUP BY
y tiene mucha memoria disponible. -
tmpdir
El directorio usado para ficheros y tablas temporales. Esta variable puede tomar una lista de diferentes paths usados con una política round-robin. Estos paths pueden separarse mediante dos puntos ('
:
') en Unix y punto y coma (';
') en Windows, NetWare, y OS/2.Esta característica puede usarse para repartir la carga entre varios discos físicos. Si el servidor MySQL actúa como un esclavo de replicación, no debe asignar
tmpdir
un valor que apunte a un directorio en un sistema de ficheros en memoria o a un directorio que se borre cada vez que el servidor reinicie. Un esclavo de replicación necesita que algunos de sus ficheros temporales sobrevivan a un reinicio de servidor de forma que pueeda replicar tablas temporales u operacionesLOAD DATA INFILE
. Si los ficheros en un directorio de ficheros temporales se pierden cuando reinicia el servidor, la replicación falla. -
transaction_alloc_block_size
El tamaño reservado (en bytes) de bloques de memoria que se reservan para almacenar consultas que son partes de una transacción que debe ser guardad en el log binario al hacer un commit.
-
transaction_prealloc_size
Tamaño en bytes del buffer persistente para
transaction_alloc_blocks
que no se libera entre consultas. Haciéndolo lo suficientemente grande para guardar todas las consultas dentro de una única transacción, puede evitar varias llamadasmalloc()
. -
tx_isolation
El nivel de aislamiento de transacción por defecto. Por defecto es
REPEATABLE-READ
. -
updatable_views_with_limit
Esta variable controla si las actualizaciones pueden hacerse usando una vista que no contenga una clave primária en la tabla subyacente, si la actualización contiene una cláusula
LIMIT
. (Tales actualizaciones normalmente las generan herramientas GUI.) Una actualización es un comandoUPDATE
oDELETE
.Clave primaria se refiere a un índicePRIMARY KEY
, oUNIQUE
en el que ninguna columna puede contenerNULL
.La variable puede tener dos valores:
-
1
oYES
: Muestra sólo una advertencia (no un mensaje de error). Este es el valor por defecto. -
0
oNO
: Prohibe la actualización.
Esta variable se añadió en MySQL 5.0.2.
-
-
version
El número de versión para el servidor.
-
version_bdb
La versión del motor de almacenamiento
BDB
. -
version_comment
El script configure tiene una opción
--with-comment
que permite especificar un comentario al compilar MySQL. Esta variable contiene el valor de dicho comentario. -
version_compile_machine
El tipo de máquina o arquitectura en el que se compiló MySQL.
-
version_compile_os
El tipo de sistema operativo en el que se compiló MySQL.
-
wait_timeout
Número de segundos que el servidor espera para recibir actividad en una conexión no interactiva antes de cerrarla.
En el arranque de un thread, el valor de la variable de sesión
wait_timeout
se inicializa de la variable globalwait_timeout
o deinteractive_timeout
, dependiendo del tipo de cliente (como se define en la opción de conexiónCLIENT_INTERACTIVE
demysql_real_connect()
). Consulte tambiéninteractive_timeout
.
Varias variables de sistema del servidor son dinámicas y
pueden cambiarse en tiempo de ejecución mediante SET
GLOBAL
o SET SESSION
. También
puede obtener sus valores usando SELECT
.
Consulte Sección 9.4, “Variables de sistema”.
La siguiente tabla muestra la lista completa de todas las
variables dinámicas de sistema. La última columna indica
para cada variable si son GLOBAL
o
SESSION
(o ambas).
Nombre de Variable | Tipo de Valor | Tipo |
autocommit
|
booleana |
SESSION
|
big_tables
|
booleana |
SESSION
|
binlog_cache_size
|
numérica |
GLOBAL
|
bulk_insert_buffer_size
|
numérica | GLOBAL | SESSION |
character_set_client
|
cadena de carácteres | GLOBAL | SESSION |
character_set_connection
|
cadena de carácteres | GLOBAL | SESSION
|
character_set_results
|
cadena de carácteres | GLOBAL | SESSION |
character_set_server
|
cadena de carácteres | GLOBAL | SESSION |
collation_connection
|
cadena de carácteres | GLOBAL | SESSION |
collation_server
|
cadena de carácteres | GLOBAL | SESSION |
concurrent_insert
|
booleana |
GLOBAL
|
connect_timeout
|
numérica |
GLOBAL
|
convert_character_set
|
cadena de carácteres | GLOBAL | SESSION |
default_week_format
|
numérica | GLOBAL | SESSION |
delay_key_write
|
OFF | ON | ALL |
GLOBAL
|
delayed_insert_limit
|
numérica |
GLOBAL
|
delayed_insert_timeout
|
numérica |
GLOBAL
|
delayed_queue_size
|
numérica |
GLOBAL
|
error_count
|
numérica |
SESSION
|
expire_logs_days
|
numérica |
GLOBAL
|
flush
|
booleana |
GLOBAL
|
flush_time
|
numérica |
GLOBAL
|
foreign_key_checks
|
booleana |
SESSION
|
ft_boolean_syntax
|
numérica |
GLOBAL
|
group_concat_max_len
|
numérica | GLOBAL | SESSION |
identity
|
numérica |
SESSION
|
innodb_autoextend_increment
|
numérica |
GLOBAL
|
innodb_concurrency_tickets
|
numérica |
GLOBAL
|
innodb_max_dirty_pages_pct
|
numérica |
GLOBAL
|
innodb_max_purge_lag
|
numérica |
GLOBAL
|
innodb_sync_spin_loops
|
numérica |
GLOBAL
|
innodb_table_locks
|
booleana | GLOBAL | SESSION |
innodb_thread_concurrency
|
numérica GLOBAL |
|
innodb_thread_sleep_delay
|
numérica GLOBAL |
|
insert_id
|
booleana |
SESSION
|
interactive_timeout
|
numérica | GLOBAL | SESSION |
join_buffer_size
|
numérica | GLOBAL | SESSION |
key_buffer_size
|
numérica |
GLOBAL
|
last_insert_id
|
numérica |
SESSION
|
local_infile
|
booleana |
GLOBAL
|
log_warnings
|
numérica |
GLOBAL
|
long_query_time
|
numeric | GLOBAL | SESSION |
low_priority_updates
|
booleana | GLOBAL | SESSION |
max_allowed_packet
|
numérica | GLOBAL | SESSION |
max_binlog_cache_size
|
numérica |
GLOBAL
|
max_binlog_size
|
numérica |
GLOBAL
|
max_connect_errors
|
numérica |
GLOBAL
|
max_connections
|
numérica |
GLOBAL
|
max_delayed_threads
|
numérica |
GLOBAL
|
max_error_count
|
numérica | GLOBAL | SESSION |
max_heap_table_size
|
numérica | GLOBAL | SESSION |
max_insert_delayed_threads
|
numérica |
GLOBAL
|
max_join_size
|
numérica | GLOBAL | SESSION |
max_relay_log_size
|
numérica |
GLOBAL
|
max_seeks_for_key
|
numérica | GLOBAL | SESSION |
max_sort_length
|
numérica | GLOBAL | SESSION |
max_tmp_tables
|
numérica | GLOBAL | SESSION |
max_user_connections
|
numérica |
GLOBAL
|
max_write_lock_count
|
numérica |
GLOBAL
|
multi_read_range
|
numérica | GLOBAL | SESSION |
myisam_data_pointer_size
|
numérica |
GLOBAL
|
log_bin_trust_routine_creators
|
booleana |
GLOBAL
|
myisam_max_sort_file_size
|
numérica | GLOBAL | SESSION |
myisam_repair_threads
|
numérica | GLOBAL | SESSION |
myisam_sort_buffer_size
|
numérica | GLOBAL | SESSION |
net_buffer_length
|
numérica | GLOBAL | SESSION |
net_read_timeout
|
numérica | GLOBAL | SESSION |
net_retry_count
|
numérica | GLOBAL | SESSION |
net_write_timeout
|
numérica | GLOBAL | SESSION |
old_passwords
|
numérica | GLOBAL | SESSION |
optimizer_prune_level
|
numérica | GLOBAL | SESSION |
optimizer_search_depth
|
numérica | GLOBAL | SESSION |
preload_buffer_size
|
numérica | GLOBAL | SESSION |
query_alloc_block_size
|
numérica | GLOBAL | SESSION |
query_cache_limit
|
numérica |
GLOBAL
|
query_cache_size
|
numérica |
GLOBAL
|
query_cache_type
|
enumeración | GLOBAL | SESSION |
query_cache_wlock_invalidate
|
booleana | GLOBAL | SESSION |
query_prealloc_size
|
numérica | GLOBAL | SESSION |
range_alloc_block_size
|
numérica | GLOBAL | SESSION |
read_buffer_size
|
numérica | GLOBAL | SESSION |
read_only
|
numérica |
GLOBAL
|
read_rnd_buffer_size
|
numérica | GLOBAL | SESSION |
rpl_recovery_rank
|
numérica |
GLOBAL
|
safe_show_database
|
booleana |
GLOBAL
|
secure_auth
|
booleana |
GLOBAL
|
server_id
|
numérica |
GLOBAL
|
slave_compressed_protocol
|
booleana |
GLOBAL
|
slave_net_timeout
|
numérica |
GLOBAL
|
slave_transaction_retries
|
numérica |
GLOBAL
|
slow_launch_time
|
numérica |
GLOBAL
|
sort_buffer_size
|
numérica | GLOBAL | SESSION |
sql_auto_is_null
|
booleana |
SESSION
|
sql_big_selects
|
booleana |
SESSION
|
sql_big_tables
|
booleana |
SESSION
|
sql_buffer_result
|
booleana |
SESSION
|
sql_log_bin
|
booleana |
SESSION
|
sql_log_off
|
booleana |
SESSION
|
sql_log_update
|
booleana |
SESSION
|
sql_low_priority_updates
|
booleana | GLOBAL | SESSION |
sql_max_join_size
|
numérica | GLOBAL | SESSION |
sql_mode
|
enumeración | GLOBAL | SESSION |
sql_notes
|
booleana |
SESSION
|
sql_quote_show_create
|
booleana |
SESSION
|
sql_safe_updates
|
booleana |
SESSION
|
sql_select_limit
|
numérica |
SESSION
|
sql_slave_skip_counter
|
numérica |
GLOBAL
|
updatable_views_with_limit
|
enumeración | GLOBAL | SESSION |
sql_warnings
|
booleana |
SESSION
|
sync_binlog
|
numérica |
GLOBAL
|
sync_frm
|
booleana |
GLOBAL
|
storage_engine
|
enumeración | GLOBAL | SESSION |
table_cache
|
numérica |
GLOBAL
|
table_type
|
enumeración | GLOBAL | SESSION |
thread_cache_size
|
numérica |
GLOBAL
|
time_zone
|
cadena de carácteres | GLOBAL | SESSION |
timestamp
|
booleana |
SESSION
|
tmp_table_size
|
enumeración | GLOBAL | SESSION |
transaction_alloc_block_size
|
numérica | GLOBAL | SESSION |
transaction_prealloc_size
|
numérica | GLOBAL | SESSION |
tx_isolation
|
enumeración | GLOBAL | SESSION |
unique_checks
|
booleana |
SESSION
|
wait_timeout
|
numérica | GLOBAL | SESSION |
warning_count
|
numérica |
SESSION
|
Variables marcadas como cadena de
carácteres toman un valor de cadena de
carácteres. Variables marcadas como
numérica toman un valor
numérico. Variables marcadas como
boolean toman como valor 0,
1, ON
o OFF
. Variables
marcadas como enumeración
normalmente deben tomar uno de los valores disponibles para la
variable, pero también pueden tomar como valor el número
correspondiente al valor deseado de la enumeración. Para
variables de sistema enumeradas, el primer valor de la
enumeración es 0. Esto difiere de las columnas
ENUM
, en que el primer valor de la
enumeración es 1.
El servidor mantiene muchas variables de estado que proveen de
información sobre sus operaciones. Puede ver estas variables y
sus valores utilizando la sentencia SHOW
STATUS
:
mysql> SHOW STATUS; +-----------------------------------+------------+ | Variable_name | Value | +-----------------------------------+------------+ | Aborted_clients | 0 | | Aborted_connects | 0 | | Bytes_received | 155372598 | | Bytes_sent | 1176560426 | … | Connections | 30023 | | Created_tmp_disk_tables | 0 | | Created_tmp_files | 3 | | Created_tmp_tables | 2 | … | Threads_created | 217 | | Threads_running | 88 | | Uptime | 1389872 | +-----------------------------------+------------+
Muchas variables de estado son inicializadas a 0 por la
sentencia FLUSH STATUS
.
Las variables de estado tienen los siguientes significados. Las variables en las que no se indica versión están presentes en MySQL 5.0. Para información a propósito de su historial de implementación, consulte Manual de referencia de MySQL 4.1.
-
Aborted_clients
El número de conexiones que han sido abortadas debido a que el cliente murió sin cerrar la conexión apropiadamente. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.
-
Aborted_connects
El número de intentos de conexión al servidor MySQL que han fallado. Consulte Sección A.2.10, “Errores de comunicación y conexiones abortadas”.
-
Binlog_cache_disk_use
El número de transacciones que han utilizado la cache temporal del registro binario pero han excedido el valor de
binlog_cache_size
y utilizado un archivo temporal para almacenar las sentencias de la transacción. -
Binlog_cache_use
El número de transacciones que han utilizado la cache temporal del registro binario.
-
Bytes_received
El número de bytes recibidos desde todos los clientes.
-
Bytes_sent
El número de bytes enviados hacia todos los clientes.
-
Com_
xxx
Las variables del contador de sentencias
Com_
xxx
indica el número de veces que cada sentenciaxxx
ha sido ejecutada. Existe una variable de estado por cada tipo de sentencia. Por ejemploCom_delete
yCom_insert
cuentan sentenciasDELETE
andINSERT
, respectivamente.Las variables de estado
Com_stmt_
xxx
fueron añadidas en 5.0.8:-
Com_stmt_prepare
-
Com_stmt_execute
-
Com_stmt_fetch
-
Com_stmt_send_long_data
-
Com_stmt_reset
-
Com_stmt_close
Estas variables representan comandos de sentencias preparadas. Sus nombres se refieren a los comandos
COM_
xxx
utilizados en la capa de red; en otras palabras: Sus valores son incrementados siempre que las llamadas de la API de sentencias preparadas como mysql_stmt_prepare(), mysql_stmt_execute(), etc. son ejecutadas. Asímismo,Com_stmt_prepare
,Com_stmt_execute
yCom_stmt_close
se incrementan también cuando alguien ejecuta las siguientes sentencias SQL:PREPARE
,EXECUTE
, orDEALLOCATE
respectivamente.Com_stmt_fetch
representa el número total de comunicaciones de red ejecutadas al recibir datos de los cursoresTodas las variables
Com_stmt_
xxx
son incrementadas aunque el argumento de una sentencia preparada sea desconocido u ocurra un error durante la ejecución. Es decir, sus valores corresponden al número de peticiones recibidas, no al número de peticiones completadas con éxito. -
-
Connections
El número de instentos de conexión (con éxito o no) al servidor MySQL.
-
Created_tmp_disk_tables
El número de tablas temporales en disco creadas automáticamente por el servidor mientras ejecutaba sentencias.
-
Created_tmp_files
Número de arhcivos temporales que mysqld ha creado.
-
Created_tmp_tables
El número de tablas temporales en memoria creadas automáticamente por el servidor mientras ejecuta sentencias. Si
Created_tmp_disk_tables
es grande, quizá querría aumentar el valor detmp_table_size
para causar que las tablas sean basadas en memoria en vez de basadas en disco. -
Delayed_errors
El número de registros escritos con
INSERT DELAYED
en los que algún error ocurrió (probablementeduplicate key
). -
Delayed_insert_threads
El número de hilos gestores de
INSERT DELAYED
en uso. -
Delayed_writes
El número de registros
INSERT DELAYED
escritos -
Flush_commands
El número de comandos
FLUSH
ejecutados. -
Handler_commit
El número de sentencias
COMMIT
internas. -
Handler_discover
El servidor MySQL puede preguntar al motor de almacenamiento
NDB Cluster
si conoce una tabla con un nombre dado. Esto se llama descubrimiento (discovery).Handler_discover
indica el número de veces que se han descubierto tablas mediante este mecanismo. -
Handler_delete
El número de veces qeu se han borrado registros de tablas.
-
Handler_read_first
El número de veces que se lee la primera entrada de un índice. Si este valor es alto, indica que el servidor está haciendo muchos escaneos "full index"; por ejemplo,
SELECT col1 FROM foo
, suponiendo quecol1
está indexada. -
Handler_read_key
El número de peticiones para leer un registro basadas en una clave. Si este número es alto, es una buena indicación de que las consultas y tablas están indexadas adecuadamente.
-
Handler_read_next
El número de peticiones para leer el siguiente registro en el orden de la clave. Esto se incrementa cada vez que se está consultando una columna indexada con una restricción de rango, o si se está haciendo un escaneo de índice.
-
Handler_read_prev
El número de peticiones para leer el registro previo en el orden de la clave. Este método de lectura es utilizado principalmente para optimizar
ORDER BY ...DESC
. -
Handler_read_rnd
El número de peticiones para leer un registro basándose en una posición fija. Es alto si se están haciendo muchas consultas que requieren ordenación del resultado. Probablemente tenga muchas consultas que requieran que MySQL escanee tablas completas o tiene joins que no utilizan claves adecuadamente.
-
Handler_read_rnd_next
El número de peticiones para leer el siguiente registro en el archivo de datos. Éste es alto si está haciendo muchos escaneos de tablas. Generalmente esto sugiere que las tablas no están indexadas adecuadamente o que las consultas no están escritas para obetner ventaja de los índices que se tienen.
-
Handler_rollback
El número de sentencias
ROLLBACK
internas. -
Handler_update
El número de peticiones de modificación de un registro en una tabla.
-
Handler_write
El número de peticiones de inserción de un registro en una tabla.
-
Innodb_buffer_pool_pages_data
El número de páginas que contienen datos (procesados o no). Añadido en MySQL 5.0.2.
-
Innodb_buffer_pool_pages_dirty
El número de páginas sin procesar. Añadido en MySQL 5.0.2.
-
Innodb_buffer_pool_pages_flushed
El número de páginas del buffer sobre las que se ha hecho una petición de volcado. Añadido en MySQL 5.0.2.
-
Innodb_buffer_pool_pages_free
El número de páginas libres. Añadido en MySQL 5.0.2.
-
Innodb_buffer_pool_pages_latched
El número de páginas bloqueadas en el buffer
InnoDB
. Estas son las páginas que están siendo actualmente leidas o escritas o que no pueden ser volcadas o borradas por alguna otra razón. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_pages_misc
El número de páginas ocupadas porque han sido seleccionadas para procesos administrativos, como bloqueos de registro o el índice de hash adaptativo. Este valor puede ser también calculado como
Innodb_buffer_pool_pages_total
-Innodb_buffer_pool_pages_free
-Innodb_buffer_pool_pages_data
. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_pages_total
Tamaño total del buffer, en páginas. Añadido en MySQL 5.0.2.
-
Innodb_buffer_pool_read_ahead_rnd
El número de lecturas avanzadas ``aleatorias'' que
InnoDB
ha iniciado. Esto pasa cuando una consulta necesita escanear una gran poción de una tabla pero en orden aleatorio. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_read_ahead_seq
El número de lecturas avanzadas secuenciales que
InnoDB
ha iniciado. Esto pasa cuandoInnoDB
realiza un escaneo secuencial completo de una tabla. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_read_requests
El número de peticiones lógicas de lectura que
InnoDB
ha hecho. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_reads
El número de lecturas lógicas del buffer que
InnoDB
no pudo satisfacer y tuvo que hacer una lectura de una única página. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_wait_free
Normalmente, las escrituras al buffer de
InnoDB
se llevan acabo en segundo plano. Aún así, si es necesario leer o crear una página y no existe ninguna página vacía disponible, entonces es también necesario esperar a que las páginas sean volcadas previamente. Este contador cuenta las instancias de estas esperas. Si el tamaño del buffer ha sido establecido correctamente, este valor debería ser pequeño. Añadido en MySQL 5.0.2. -
Innodb_buffer_pool_write_requests
El número de escrituras hechas al buffer de
InnoDB
. Añadido en MySQL 5.0.2. -
Innodb_data_fsyncs
El número de operaciones
fsync()
total. Añadido en MySQL 5.0.2. -
Innodb_data_pending_fsyncs
El número de operaciones
fsync()
pendientes. Añadido en MySQL 5.0.2. -
Innodb_data_pending_reads
El número actual de lecturas pendientes. Añadido en MySQL 5.0.2.
-
Innodb_data_pending_writes
El número actual de escrituras pendientes. Añadido en MySQL 5.0.2.
-
Innodb_data_read
El total de datos leidos, en bytes. Añadido en MySQL 5.0.2.
-
Innodb_data_reads
El número total de lecturas de datos. Añadido en MySQL 5.0.2.
-
Innodb_data_writes
El número total de escrituras de datos. Añadido en MySQL 5.0.2.
-
Innodb_data_written
El total de datos escritos, en bytes. Añadido en MySQL 5.0.2.
-
Innodb_dblwr_writes
,Innodb_dblwr_pages_written
El número de operaciones doublewrite que se han ejecutado y el número de páginas que se han escrito para ello. Añadido en MySQL 5.0.2. Consulte Sección 15.14.1, “E/S de disco (Disk I/O)”.
-
Innodb_log_waits
El número de esperas debidas a que el registro del buffer era demasiado pequeño y se tuvo que esperar a que fuese volcado antes de continuar. Añadido en MySQL 5.0.2.
-
Innodb_log_write_requests
El número de peticiones de escritura al registro. Añadido en MySQL 5.0.2.
-
Innodb_log_writes
El número de escrituras físicas al archivo de registro. Añadido en MySQL 5.0.2.
-
Innodb_os_log_fsyncs
El número de escrituras
fsync()
realizadas al archivo de registro. Añadido en MySQL 5.0.2. -
Innodb_os_log_pending_fsyncs
El número de operaciones
fsync()
del archivo de registro. Añadido en MySQL 5.0.2. -
Innodb_os_log_pending_writes
Escrituras del archivo de registro pendientes. Añadido en MySQL 5.0.2.
-
Innodb_os_log_written
El número de bytes escritos al archivo de registro. Añadido en MySQL 5.0.2.
-
Innodb_page_size
El tamaño de página con que se compiló
InnoDB
(16KB por defecto). Muchos valores son contados en páginas; el tamaño de página permite convertirlos fácilmente a bytes. Añadido en MySQL 5.0.2. -
Innodb_pages_created
El número de páginas creadas. Añadido en MySQL 5.0.2.
-
Innodb_pages_read
El número de páginas leidas. Añadido en MySQL 5.0.2.
-
Innodb_pages_written
El número de páginas escritas. Añadido en MySQL 5.0.2.
-
Innodb_row_lock_current_waits
El número de bloqueos de registro por el que se está esperando. Añadido en MySQL 5.0.3.
-
Innodb_row_lock_time
El tiempo total gastado en adquirir bloqueos de registro, en milisegundos. Añadido en MySQL 5.0.3.
-
Innodb_row_lock_time_avg
El tiempo medio gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.
-
Innodb_row_lock_time_max
El tiempo máximo gastado en adquirir un bloqueo de registro, en milisegundos. Añadido en MySQL 5.0.3.
-
Innodb_row_lock_waits
El número de veces que se ha tenido que esperar por un bloqueo de registro. Añadido en MySQL 5.0.3.
-
Innodb_rows_deleted
El número de registros borrados de tablas
InnoDB
. Añadido en MySQL 5.0.2. -
Innodb_rows_inserted
El número de registros insertados en tablas
InnoDB
. Añadido en MySQL 5.0.2. -
Innodb_rows_read
El número de registros leidos desde tablas
InnoDB
. Añadido en MySQL 5.0.2. -
Innodb_rows_updated
El número de registros actualizados en tablas
InnoDB
. Añadido en MySQL 5.0.2. -
Key_blocks_not_flushed
El número de bloques de claves en la cache de claves que han cambiado pero todavía no han sido volcados a disco.
-
Key_blocks_unused
El número de bloques sin utilizar en la cache de claves. Puede utilizar este valor para determinar qué tamaño de la cache de claves está en uso; consulte la discusión de
key_buffer_size
en Sección 5.3.3, “Variables de sistema del servidor”. -
Key_blocks_used
El número de bloques utilizados en la cache de claves. Este valor es una marca de máximo, que indica el número máximo de bloques que han sido nunca utilizados al mismo tiempo.
-
Key_read_requests
El número de peticiones para leer un bloque de claves de la cache.
-
Key_reads
El número de lecturas físicas de un bloque de claves desde disco. Si
Key_reads
es grande, entonces el valor dekey_buffer_size
es, probablemente, demasiado pequeño. La tasa de fallos de la cache puede ser calculada comoKey_reads
/Key_read_requests
. -
Key_write_requests
El número de peticiones de escritura de un bloque de claves a la cache.
-
Key_writes
El número de escrituras físicas de un bloque de claves a disco.
-
Last_query_cost
El coste total de la última consulta compilada tal como ha sido computada por el optimizador de consultas. Es útil para comparar el coste de diferentes planes de ejecución para la misma consulta. El valor por defecto de 0 significa que no se ha compilado ninguna consulta todavía. Esta variable fue añadida en MySQL 5.0.1 con un valor por defecto de -1. En MySQL 5.0.7 el valor por defecto ha cambiado a 0; también en la versión 5.0.7, el ámbito de
Last_query_cost
ha cambiado a sesión en vez de global. -
Max_used_connections
El número máximo de conexiones que han sido utilizadas simultáneamente desde que el servidor ha sido iniciado.
-
Not_flushed_delayed_rows
El número de registros esperando a ser escritos en colas de
INSERT DELAY
. -
Open_files
El número de archivos que están abiertos.
-
Open_streams
El número de flujos de datos (strems) que están abiertos (utilizados principalmente para el registro).
-
Open_tables
El número de tablas que están actualmente abiertas.
-
Opened_tables
El número de tablas que han sido abiertas. Si
Opened_tables
es grande, probablemente el valor detable_cache
es demasiado pequeño. -
Qcache_free_blocks
El número de bloques de memoria libres en la cache de consultas.
-
Qcache_free_memory
El total de memoria libre en la cache de consultas.
-
Qcache_hits
El número de éxitos de la cache.
-
Qcache_inserts
El número de consultas añadidas a la cache.
-
Qcache_lowmem_prunes
El número de consultas que fueron borradas de la cache de consultas debido a baja memoria.
-
Qcache_not_cached
El número de consultas que no han entrado en la cache (por no ser "cacheables", o debido al parámetro
query_cache_type
). -
Qcache_queries_in_cache
El número de consultas registradas en la cache.
-
Qcache_total_blocks
El número total de bloques en la cache de consultas.
-
Questions
El número de consultas que han sido enviadas al servidor.
-
Rpl_status
El estado de la replicación a prueba de fallos (todavía no implementado).
-
Select_full_join
El número de joins que no utilizan índices. Si este valor no es 0, debería comprobar cuidadosamente los índices de sus tablas.
-
Select_full_range_join
El número de joins que han utilizado una búsqueda por rango en una tabla de referencia.
-
Select_range
El número de joins que han usado rangos en la primera table. Normalmente no es algo crítico aunque pueda ser bastante grande.
-
Select_range_check
El número de joins sin claves que comprueban la utilización de claves después de cada registro. Si esto no es cero, debería comprobar cuidadosamente los índices de sus tablas.
-
Select_scan
El número de joins que han hecho un escaneo total de la primera tabla.
-
Slave_open_temp_tables
El número de tablas temporales abiertas actualmente por el subproceso SQL esclavo.
-
Slave_running
Este valor es
ON
si el servidor es un esclavo que está conectado a un servidor maestro. -
Slave_retried_transactions
Número total de veces desde el inicio que el subproceso SQL esclavo de replicación ha intentando alguna transacción. Para la serie de MySQL 5.0, esta variable fue añadida en la versión 5.0.4.
-
Slow_launch_threads
El número de subprocesos que han tardado en crearse más de
slow_launch_time
segundos. -
Slow_queries
El número de consultas que han tardado más de
long_query_time
segundos. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”. -
Sort_merge_passes
El número de pasadas que el algoritmo de ordenación ha tenido que hacer. Si este valor es grande, debería considerar incrementar el valor de la variable de sistema
sort_buffer_size
-
Sort_range
El número de ordenaciones que fueron realizadas utilizando rangos.
-
Sort_rows
El número de registros ordenados.
-
Sort_scan
El número de ordenaciones que fueron hechas escaneando la tabla.
-
Ssl_
xxx
Variables utilizadas para conexiones SSL.
-
Table_locks_immediate
El número de veces que un bloque de tabla ha sido adquirido inmediatamente.
-
Table_locks_waited
El número de veces que un bloque de tabla no se ha podido adquirir inmediatamente y se ha necesitado una espera. Si esto es alto, y tiene problemas de rendimiento, debería primero optimizar sus consultas y después, o bien utilizar replicación, o dividir sus tablas.
-
Threads_cached
El número de subprocesos en la cache de subprocesos.
-
Threads_connected
El número de conexiones abiertas actualmente.
-
Threads_created
El número de subprocesos creados para gestionar conexiones. Si
Threads_created
es grande, debería incrementar el valor dethread_cache_size
. La tasa de éxitos de la cache puede ser calculada comoThreads_created
/Connections
. -
Threads_running
El número de subprocesos que no están durmiendo.
-
Uptime
El número de segundos que el servidor ha estado funcionando ininterrumpidamente.