MySQL proporciona acceso a muchas variables de sistema y de conexión. Muchas variables pueden modificarse dinámicamente mientras el servidor se está ejecutando. Esto a menudo permite variar la operación del servidor sin tener que detenerlo y reiniciarlo.
El servidor mysqld mantiene dos clases de variables. Las variables globales afectan la operación general del servidor. Las variables de sesión actúan sobre la operación en conexiones de clientes individuales.
      Cuando el servidor arranca, inicializa todas las variables
      globales a sus valores predeterminados. Estos valores pueden ser
      modificados por opciones especificadas en ficheros de opciones o
      en la línea de comandos. Luego de que el servidor se inicia, las
      variables globales pueden ser modificadas dinámicamente
      conectándose y emitiendo una sentencia SET GLOBAL
      . Para cambiar una
      variable global debe tenerse el privilegio
      var_nameSUPER.
    
      El servidor también mantiene un conjunto de variables de sesión
      para cada cliente que se conecta. Las variables de sesión de
      cliente se inicializan al momento de conectarse, empleando el
      valor actual de la correspondiente variable global. Las variables
      de sesión dinámicas pueden ser modificadas por el cliente
      mediante una sentencia SET SESSION
      . No se requieren
      privilegios especiales para establecer el valor una variable de
      sesión, pero un cliente puede modificar solamente sus propias
      variables, no las de otros clientes.
    var_name
      Un cambio en una variable global es visible para cualquier cliente
      que acceda esa variable. Sin embargo, afectará solamente a las
      correspondientes variables de sesión de las conexiones que se
      realicen luego del cambio. No afectará las variables de sesión
      de los clientes actualmente conectados (ni siquiera las del
      cliente que emitió la sentencia SET GLOBAL).
    
      Los valores de las variables globales y de sesión pueden
      establecerse y recuperarse usando varias sintaxis diferentes. Los
      siguientes ejemplos están basados en la variable
      sort_buffer_size.
    
      Para establecer el valor de una variable
      GLOBAL, debe emplearse una de las siguientes
      sintaxis:
    
mysql> SET GLOBAL sort_buffer_size=valor; mysql> SET @@global.sort_buffer_size=valor;
      Para establecer el valor de una variable
      SESSION, debe emplearse una de las siguientes
      sintaxis:
    
mysql> SET SESSION sort_buffer_size=valor; mysql> SET @@session.sort_buffer_size=valor; mysql> SET sort_buffer_size=valor;
      LOCAL es un sinónimo de
      SESSION.
    
      Si al establecer el valor de una variable no se utiliza
      GLOBAL, SESSION, o
      LOCAL, por defecto se asume
      SESSION. Consulte Sección 13.5.3, “Sintaxis de SET”.
    
      Para recuperar el valor de una variable GLOBAL
      debe utilizarse una de las siguientes sentencias:
    
mysql> SELECT @@global.sort_buffer_size; mysql> SHOW GLOBAL VARIABLES like 'sort_buffer_size';
      Para recuperar el valor de una variable SESSION
      debe utilizarse una de las siguientes sentencias:
    
mysql> SELECT @@sort_buffer_size; mysql> SELECT @@session.sort_buffer_size; mysql> SHOW SESSION VARIABLES like 'sort_buffer_size';
      Aquí, también, LOCAL es un sinónimo de
      SESSION.
    
      Cuando se recupera una variable con SELECT
      @@ (o sea, no se
      especifica nombre_varglobal.,
      session., o local.), MySQL
      devuelve el valor de SESSION si existe y el
      valor GLOBAL en otro caso.
    
      En el caso de SHOW VARIABLES, si no se
      especifica GLOBAL, SESSION,
      o LOCAL, MySQL devuelve los valores de
      SESSION.
    
      La razón por la que la palabra clave GLOBAL se
      requiere para establecer el valor de variables que solamente
      existen como GLOBAL pero no para recuperar
      dicho valor, es para prevenir futuros problemas. Si se elimina una
      variable SESSION con el mismo nombre que una
      variable GLOBAL, un cliente con el privilegio
      SUPER podría cambiar accidentalmente la
      variable GLOBAL en lugar de hacerlo solamente
      sobre la variable SESSION de su propia
      conexión. Si se agrega una variable SESSION
      con el mismo nombre que una GLOBAL, un cliente
      que intentase modificar la variable GLOBAL
      podría encontrarse con que sólo se ha modificado su propia
      variable SESSION.
    
Puede encontrarse mayor información acerca de las opciones de inicio del sistema y de las variables de sistema en Sección 5.3.1, “Opciones del comando mysqld” y Sección 5.3.3, “Variables de sistema del servidor”. Una lista de las variables que pueden establecerse en tiempo de ejecución se brinda en Sección 5.3.3.1, “Variables de sistema dinámicas”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

