Variables de sistema en MySQL

Mysql tiene muchas variables de sistema que indican cómo está configurado. Cada una tiene un valor por defecto y la mayoría puede ser modificada dinámicamente mientras el servidor está corriendo.

Existen de dos tipos:

  • Globales: afectan la operación del servidor completo
  • de Sesión: afectan la operación de las conexiones cliente individuales

Cuando el servidor inicia, establece todas las variables globales a su valor por defecto. Cuando se inicia una conexión desde un cliente, sus variables de sesión se inicializan usando los valores actuales de las correspondientes variables globales.

Reglas para consultar o establecer el valor de una variable de sistema

  • Variable global: se precede su nombre con GLOBAL o @@global
  • Variable de sesión:
    • se precede su nombre por SESSION, @@session o @@
    • se precede su nombre por LOCAL o @@local
    • no se utiliza ningún modificador (solamente válido para establecer el valor)

Alternativamente se puede utilizar SHOW VARIABLES LIKE ‘variable’, donde se permiten comodines para obtener los valores de varias variables similares.

Ejemplo: Para obtener todas aquellas que definen un charset:

SHOW VARIABLES LIKE 'character_set%'

 

Consultar el valor de una variable de sistema

Si la variable es de sesión:

SELECT @@session.variable;
SELECT @@local.variable;
SELECT @@variable; #Devuelve el valor de la sesión si existe. De lo contrario el global!
SHOW SESSION VARIABLES LIKE 'variable';
SHOW LOCAL VARIABLES LIKE 'variable';
SHOW VARIABLES LIKE 'variable';

Si la variable es global:

SELECT @@GLOBAL.variable;
SHOW GLOBAL VARIABLES LIKE 'variable';

Establecer el valor de una variable de sistema

Si la variable es de sesión:

SET @@session.variable = 'valor';
SET @@local.variable = 'valor';
SET @@variable = 'valor';
SET SESSION variable = 'valor';
SET LOCAL variable = 'valor';
SET variable = 'valor';

El valor se mantiene durante esa sesión (o hasta que se cambie) y no es visible para otros clientes.

Si la variable es global:

SET @@global.variable = 'valor';
SET GLOBAL variable = 'valor';

Se requiere tener el privilegio SUPER para poder cambiar valores de variables globales.

El nuevo valor aplica solamente clientes que se conecten luego del cambio (no afecta las variables de sesión de ningún cliente previamente conectado)

Anuncios

Uso de comodines en sentencia con LIKE en MySQL

Al realizar una consulta sql utilizando LIKE, existen 2 comodines:

  • % Coincidencia de cualquier número de caracteres, incluso cero caracteres
  • _ Coincidencia exacta de un carácter

Para ejemplificar su uso, consideremos una tabla de usuarios donde tenemos 6 registros cuyos valores para el campo login son: ‘admin’, ‘admin1’, ‘admin2’, ‘admin_3’, ‘admin_4’ y ‘administrador’.

 

El primero de ellos (%), es el más conocido. Si ejecutamos:

mysql> SELECT * FROM usuarios WHERE login LIKE "admin%"

obtenemos los registros cuyo login comience con ‘admin’ y continúe con 0 o más caracteres. En nuestro caso: ‘admin’, ‘admin1’, ‘admin2’, ‘admin_3’, ‘admin_4’ y ‘administrador’ (todos los registros).

 

El segundo (_), funciona de manera similar y si ejecutamos:

mysql> SELECT * FROM usuarios WHERE login LIKE "admin_"

obtenemos los registros cuyo login comience con ‘admin’ y tenga un único carácter a continuación. En nuestro caso: ‘admin1’ y ‘admin2’ (requiere que exista un único carácter luego del texto ‘admin’).

 

Hasta aquí todo está claro, pero ¿qué sucede si quisiéramos obtener los registros cuyo login comience con ‘admin_’ (tienen un guión bajo luego del texto ‘admin’)?

Si planteamos la consulta así:

mysql> SELECT * FROM usuarios WHERE login LIKE "admin_%"

obtenemos los registros cuyo login comience con ‘admin’, tenga un carácter a continuación y luego 0 o más caracteres. En nuestro caso: ‘admin1’, ‘admin2’, ‘admin_3’, ‘admin_4’ y ‘administrador’.

 

Para poder utilizar los comodines dentro de un LIKE como si fueran simples caracteres (instancias literales), es necesario anteponerles el carácter de escape \:

mysql> SELECT * FROM usuarios WHERE login LIKE "admin_%"

así obtenemos los registros cuyo login comience con ‘admin’, tenga un guión bajo a continuación y luego 0 o más caracteres. En nuestro caso: ‘admin_3’ y ‘admin_4’.

Se puede definir otro carácter de escape en una consulta de la siguiente manera:

mysql> SELECT * FROM usuarios WHERE login LIKE "admin|_%" ESCAPE '|';

Mostrar carpeta actual en panel de navegación del Explorador de Windows

En el panel de navegación (izquierda) cuando se abre un Explorador de Windows se presenta el equipo y las unidades existentes. Al ir navegando en el panel derecho por las carpetas, no se refleja la ubicación en el panel de navegación.

Para que se vayan desplegando las carpetas dentro del panel de navegación a medida que navegamos, debemos:

  1. Acceder a Organizar > Opciones de carpeta
  2. Dentro de la solapa General, en el apartado Panel de navegación marcar la opción “Expandir automáticamente a la carpeta actual”

Agregar carpeta a Favoritos en Windows

Los Favoritos se muestran en el panel de navegación (izquierda) cuando se abre un Explorador de Windows o directamente una carpeta.

Para agregar una carpeta allí, debemos:

  1. navegar hasta encontrarla en el lado derecho
  2. hacer click izquierdo sobre la misma y arrastrar hacia el apartado de Favoritos
  3. soltar el arrastre ubicando el elemento de manera tal que aparezca la leyenda “Crear vínculo en Favoritos” (generalmente se presenta como una línea entre 2 de las carpetas que allí se encuentren)

Atención: si soltamos sobre una de las carpetas que se encuentren en favoritos, lo que realmente sucederá es que se moverá el contenido seleccionado a dicha carpeta.

Limpiar los DNS cacheados en Windows

Durante el uso del equipo, navegando en internet, el caché de DNS en Windows se va llenando. Los registros se mantienen por 24 minutos, de manera predeterminada. Posteriores accesos a los mismos sitios utilizan este caché para evitar realizar nuevamente la consulta de DNS.

Es posible que si se actualiza la información de DNS durante este tiempo, los navegadores sigan mostrando contenido previo debido a que se sigue accediendo al servidor indicado en el caché.

Para solucionarlo, accedemos a la línea de comandos (cmd) y ejecutamos:

ipconfig /flushdns

Desactivar flash en los navegadores

Ya sea por seguridad o por obsolescencia, podemos necesitar desactivar Flash en nuestros navegadores. En cada uno la forma en la que esto se lleva a cabo es diferente:

Firefox:

  1. Accedemos a about:addons desde la barra de direcciones.
  2. Buscamos el plugin Shockwave Flash y en el desplegable de la derecha correspondiente, elegimos “Nunca activar”.
  3. La línea del plugin queda grisada y al lado del nombre aparece “(Deshabilitado)”

Si prefieren tener la posibilidad de decidir activarlo en algunos sitios, elijan la opción “Preguntar para activar”.

Chrome:

  1. Accedemos a chrome://plugins desde la barra de direcciones.
  2. Buscamos el complemento Adobe Flash player y clickeamos sobre “Inhabilitar”.
  3. La línea del complemento queda grisada y al lado del nombre aparece “(Inhabilitada)”

Internet Explorer:

  1. Accedemos a Herramientas desde la barra de menú (o desde el icono del engranaje) y seleccionamos “Administrar complementos”
  2. En la columna “Tipos de complementos” seleccionamos “Barras de herramientas y extensiones”
  3. En el listado de la derecha, buscamos el complemento Shockwave Flash Object y lo seleccionamos
  4. Presionamos el botón “Deshabilitar” (abajo a la derecha)
  5. En la fila del complemento, se cambia el valor de la columna Estado a “Deshabilitado”

Detectar la versión instalada de flash en el navegador

Para saber con la versión de Flash que se encuentra disponible en un navegador, basta con ingresar a la siguiente página de Adobe:

http://www.adobe.com/es/software/flash/about/

Allí veremos un recuadro que indica:

Version Information

You have version
nn,nn,nnn,nnn installed

Adicionalmente, encontraremos debajo una tabla indicando la última versión disponible por plataforma y navegador.

Cabe destacar que es necesario hacer esta verificación en cada navegador, dado que podemos tener una versión distinta en cada uno de ellos!