MySQL: La opción skip-name-resolve

Una de las opciones que suelo usar en un MySQL por defecto es:

skip-name-resolve

En la guia de instalación de MySQL 5.5 ya la habilita al instalar el MySQL.

Dicha opción deshabilita la resolución de nombres, por lo que veremos al iniciar MySQL Warnings como los siguientes:

101202 15:43:44 [Warning] 'user' entry '@penny.systemadmin.es' ignored in --skip-name-resolve mode.

Nos esta indicando que no podrá aplicar los GRANTs relacionados con nombres al no poder resolver las IPs de los clientes: deberemos usar la IP en lugar del nombre en los GRANTs.

En caso que no apliquemos dicha opción para usar nombres en lugar de IPs, si el resolver falla nos encontraremos que el MySQL …

[Lea más]
Buscando campos entre todas las bases de datos de MySQL-MariaDB

Justo esta mañana he tenido un problema con #MySQL y obtenía un error un tanto “extraño”, no por que saliera un error, sino porque el campo que daba el error no me resultaba conocido. En concreto, he creado un procedimiento para realizar tablas de referencas cruzadas, y al ejecutar me saltaba un error: El caso …

Continuar leyendo »

The post Buscando campos entre todas las bases de datos de MySQL-MariaDB appeared first on Manejando datos.

Analizar el uso de memoria de MySQL

Una pregunta muy habitual suele ser:

Mi base de datos tiene 40GB de buffer pool, pero está consumiendo 60GB. ¿Por qué?

Una pregunta sencilla cuya respuesta es por lo general difícil de encontrar. MySQL no nos da mucha información sobre donde se está usando esa memoria. Un problema que se intentará arreglar en el próximo Oracle MySQL 5.7 así que hasta que llegue ese momento toca realizar tareas de investigación. Lo primero y lo lógico es mirar el my.cnf y tener en cuenta estos detalles:

  • Hay 4 buffers que se usan por sesión. Eso quiere decir que no es un valor global, si no que se puede multiplicar por el número de threads que tengas abiertos. read_buffer_size, read_rnd_buffer_size, sort_buffer_size y join_buffer_size son los que tenemos que investigar primero. La recomendación habitual es no cambiar los valores por defecto de dichas variables. La …
[Lea más]
Analizar el uso de memoria de MySQL

Una pregunta muy habitual suele ser:

Mi base de datos tiene 40GB de buffer pool, pero está consumiendo 60GB. ¿Por qué?

Una pregunta sencilla cuya respuesta es por lo general difícil de encontrar. MySQL no nos da mucha información sobre donde se está usando esa memoria. Un problema que se intentará arreglar en el próximo Oracle MySQL 5.7 así que hasta que llegue ese momento toca realizar tareas de investigación. Lo primero y lo lógico es mirar el my.cnf y tener en cuenta estos detalles:

  • Hay 4 buffers que se usan por sesión. Eso quiere decir que no es un valor global, si no que se puede multiplicar por el número de threads que tengas abiertos. read_buffer_size, read_rnd_buffer_size, sort_buffer_size y join_buffer_size son los que tenemos que investigar primero. La recomendación habitual es no cambiar los valores por defecto de dichas variables. La …
[Lea más]
Comprobar si el MySQL sigue levantado con mysqladmin

El comando mysqladmin dispone de varias opciones, una de ellas (ping) permite comprobar si el MySQL esta levantado.

$ mysqldadmin
(...)
Where command is a one or more of: (Commands may be shortened)
  create databasename   Create a new database
  debug                 Instruct server to write debug information to log
  drop databasename     Delete a database and all its tables
  extended-status       Gives an extended status message from the server
  flush-hosts           Flush all cached hosts
  flush-logs            Flush all logs
  flush-status          Clear status variables
  flush-tables          Flush all tables
  flush-threads         Flush the thread cache
  flush-privileges      Reload grant tables (same as reload)
  kill id,id,...        Kill mysql threads
  password new-password Change old password to new-password, MySQL 4.1 hashing.
  old-password new-password Change old password to new-password in old …
[Lea más]
Cagadas memorables: El caso de la SELECT en un ndb

Al reiniciar un MySQL Cluster (ndb) para hacer un downgrade de kernel y ver todos los nodos operativos:

# /opt/mysql-cluster/bin/ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     3 node(s)
id=11   @10.10.6.1  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0, Master)
id=12   @10.10.6.2  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0)
id=13   @10.10.6.3  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1    @10.10.6.5  (mysql-5.5.29 ndb-7.2.10)
id=4    @10.10.6.4  (mysql-5.5.29 ndb-7.2.10)

[mysqld(API)]   1 node(s)
id=54   @10.10.6.4  (mysql-5.5.29 ndb-7.2.10)

Pasé a comprobar la disponibilidad de los datos en el nodo SQL (el mysqld) con un count() en una tabla grande:

mysql> select count(*) tabla_gordota; …
[Lea más]
Percona 5,6 (MariaDB y MySQL) y Debian / Ubuntu

Original post: http://anothermysqldba.blogspot.com/2013/10/percona-56-mariadb-mysql-debianubuntu.html

Empiece a trabajar fácilmente con Percona 5.6 en Debian.
En este ejemplo se está ejecutando Linux Mint 15 .



Percona 5.6:

[Lea más]
Pasar de MySQL 5.6 a 5.6 Percona

Original post: http://anothermysqldba.blogspot.com/2013/10/moving-from-mysql-56-to-percona-56.html

Percona 5.6 fue lanzado recientemente (el día de hoy en el momento de este post). Así como simple ejemplo lo que todo se tarda en pasar a este "gota en el reemplazo?"

Oct 7 06:47 Percona-Server-56-debuginfo-5.6.13-rel61.0.461.rhel6.x86_64.rpm
Oct 7 06:47 Percona-Server-client-56-5.6.13-rel61.0.461.rhel6.x86_64.rpm
Oct 7 06:47 …

[Lea más]
Usando CAST en MySQL – MariaDB

CAST es una de esas funciones que incluye MySQL que están ahí, pero que poca gente conoce. El caso es que vamos a ver un ejemplo de cómo se utiliza, a raíz de una consulta de unión. La documentación de esta función la podéis consultar aquí: http://dev.mysql.com/doc/refman/5.0/es/cast-functions.html.

Seleccionamos una tabla y hacemos una consulta, seleccionamos una segunda table y hacemos otra consulta, y creamos una consulta de UNION de ambas tablas, sabiendo que aunque son distintas, los campos deben nombrarse igual (para que la unión sea correcta!).

Consulta de UNION

A priori, parece que todo va bien, pues incluso la consulta de UNION parece …

[Lea más]
Forzando índices en MySQL – MariaDB

Dentro de un proyecto de investigación en la Universidad de Córdoba, trabajamos con una base de datos en MySQL que tiene unos cuantos registros, en torno a 9 Gb, de los que el 95% se concentran en una sola tabla “datos“.

Forzando índices

En esta tabla se guardan datos con una frecuencia de 5 minutos, pero necesitamos calcular los datos agregados horarios. Para año y medio de datos, tenemos unos cuantos millones de datos, concreamente 57 millones .

Datos

Nos metemos en faena, pero comprobamos los índices disponibles:

[Lea más]