Home |  MySQL Buzz |  FAQ |  Feeds |  Publique su blog |  Comentario |  Archivo |  Suscripción RSS RSS 2.0 Español English Deutsch Français Italiano 日本語 Русский Português 中文
Showing entries 1 to 30 of 465 Próximo 30 Viejas entradas
Cambios en variables globales de configuración entre MySQL 5.6.20 y MySQL 5.7.4 “Milestone 14″
+1 Vote Up -0Vote Down

Mientras realizaba unos tests (que tengo pendiente de enseñaros) en el -todavía en desarrollo- MySQL 5.7 quise hacer un análisis de la configuración para ver si los cambios en el rendimiento eran debidos a los cambios en el código o simplemente a los parámetros por defecto de MySQL (algo que es muy común en una migración de 5.5 a 5.6 debido al tamaño por defecto del log de transacciones y otros parámetros por defecto). Éste es un post rápido con el objetivo de identificar las variables globales que se han modificado entre estas dos versiones.

Me podrían decir que con leer

  [Lea más...]
Forzar sincronización (SST) en Galera
+0 Vote Up -0Vote Down

Si queremos forzar la sincronización de un determinado nodo con el resto, deberemos borrar el fichero grastate.dat

Primero deberemos apagar el nodo:

# /etc/init.d/mysql stop
Shutting down MySQL (Percona XtraDB Cluster).... SUCCESS! 

Luego borramos el fichero del datadir:

# rm -f /var/lib/mysql/grastate.dat 

Al volver a arrancar empezará la resincronización:

# /etc/init.d/mysql start
Starting MySQL (Percona XtraDB Cluster)....State transfer in progress, setting sleep higher
.. SUCCESS! 

En el nodo “donante“, si utilizamos xtrabackup para la sincronización, podemos encontrar el fichero innobackup.backup.log en el datadir con el log:

# cat innobackup.backup.log

InnoDB Backup
  [Lea más...]
Malas costumbres en el my.cnf
+1 Vote Up -0Vote Down

Realizando una actualización de MySQL me encontré con una mala costumbre bastante común.

Al ejecutar el mysql_upgrade fallaba:

# mysql_upgrade 
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

Por lo que me decidí a ejecutar los comandos manualmente:

mysqlcheck --all-databases --check-upgrade --auto-repair  
mysql 

Ejecutando el primero (mysqlcheck) me encontré con el problema real:

# mysqlcheck --all-databases --check-upgrade --auto-repair
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect

En el my.cnf estaban añadidas las opciones (cómo dónde deja el socket el

  [Lea más...]
¿Qué herramienta de compresión debería usar para las copias de seguridad de mi base de datos? (Parte II: descompresión)
+1 Vote Up -0Vote Down

En mi entrada de la semana pasada, analizaba algunos de las herramientas y formatos de compresión más comunes, así como su velocidad y ratio de compresión. Aunque ello podría darnos una buena idea del rendimiento de estas herramientas, el análisis estaría incompleto sin investigar la descompresión. Esto es particularmente cierto para backups de base de datos ya que, en aquellos casos en los que el proceso de compresión se realice fuera de las máquinas de producción puede que no te importe tanto los tiempos de compresión. En tal caso, incluso si es relativamente lento, no afectará al rendimiento de tu servidor MySQL (o aquello que estés usando). El

  [Lea más...]
Recopilación de entradas sobre MySQL
+0 Vote Up -0Vote Down

Hoy toca la última entrada veraniega, centrada en MySQL, uno de los pilares de este blog. La primera de las entradas del blog fue para hablar de un framework para los DBA de MySQL, que yo uso bastante y debería ser usado por los administradores y desarrolladores. Migrando de versión de MySQL Una de las …

Continuar leyendo »

Esta entrada Recopilación de entradas sobre MySQL es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance Recopilación de entradas sobre MySQL is created by Manejando datos - Blog de bases de datos y programación

MySQL Foreign Keys Ejemplo Y ERROR 1452
+0 Vote Up -0Vote Down
Original post - http://anothermysqldba.blogspot.com/2014/08/mysql-foreign-keys-example-error-1452.html

Así que me encontré con una situación hoy en día se trata de tener que actualizar un campo, pero el usuario no podía hacerlo debido a las restricciones de claves foráneas afines. 

Esta entrada de blog con ser un ejemplo sencillo que muestra una clave externa y cómo actualizarlos si tiene que hacerlo. 

En primer lugar vamos a crear una tabla simple y rellenarla con datos aleatorios. 

CREATE TABLE `table_w_code` ( 
`SOMECode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
`NameofCode` varchar(50) COLLATE utf8_unicode_ci NOT NULL, 
PRIMARY KEY










  [Lea más...]
¿Qué herramienta de compresión debería usar para las copias de seguridad de mi base de datos? (Parte I: compresión)
+1 Vote Up -0Vote Down

Esta semana hablamos de tamaño, algo que debería preocuparle a cualquier administrador de sistemas a cargo del sistema de backups de cualquier proyecto, y en particular de los backups de una base de datos.

A menudo recibo preguntas sobre cuál es la mejor herramienta de compresión a aplicar en un sistema de copias de seguridad: ¿gzip? ¿bzip2? ¿algún otro?

El entorno de pruebas

Para poder probar diferentes formatos y herramientas, creé un archivo .csv (comma-separated values, valores separados por comas) de tamaño 3.700.635.579 bytes transformando un dump reciente de todos los nodos de la porción europea de España en OpenStreetMap. Tenía un total de 46.741.126 de filas y tenía la siguiente pinta:

  [Lea más...]
Cómo instalar MySQL 5.6 en CentOS 7
+1 Vote Up -0Vote Down

Un poco de historia

La última versión de Red Hat Enterprise Linux, una de las distribuciones de Linux más populares y respetadas en el mercado de servidores, se publicó en junio de 2014, seguido por los lanzamientos de CentOS 7 y Oracle Linux en julio del mismo año.

Hay cambios muy interesantes para administradores de bases de datos en estas nuevas versiones, de las cuales me gustaría destacar el hecho de que el instalador oficial ahora selecciona

  [Lea más...]
Consultas de referencias cruzadas en MySQL
+0 Vote Up -0Vote Down

Hace algún tiempo que uso Redmine para gestionar proyectos, la herramienta en general es buena pero a veces necesitaba de reportes diarios de tiempo utilizado por los miembros del proyecto.

En este punto se me ocurrió si podría lograr una consulta de referencias cruzadas (al estilo MS Excel), MySQL no soporta consultas de ese tipo pero pueden simularse:

1. Escribir la consulta principal que contenga las filas más importantes: project identifier, task subject y total_hours, todo en un rango de fechas.

select p.identifier, 
	e.issue_id, i.subject, round(sum(e.hours),2) as total_hours
	from redmine_nsp.time_entries e
	inner join redmine_nsp.issues i on e.issue_id = i.id
	inner join redmine_nsp.projects p on e.project_id = p.id
	where
  [Lea más...]
Test de procesos de selección – parte 2
+0 Vote Up -0Vote Down

Siguiendo el post anterior sobre malas preguntas en test de procesos de selección, hoy veremos la siguiente pregunta:

¿Cuantos servidores MySQL puedes ejecutar al mismo tiempo en un solo servidor usando unicamente una sola IP?

Las opciones son las siguientes:

  • Es necesaria una IP para cada servicio, se deben añadir más IPs al servidor: Falso, podemos hacer escuchar el daemon en otro puerto.
  • MySQL usa el puerto 3306, se puede cambiar, pero no se recomienda: Que se el por defecto no quiere decir que no se pueda cambiar ni que no se recomienda, simplemente que debe tenerse en cuenta

La parte complicada viene con:

  • Puedes ejecutar tantos servicios como quieras: Dado
  [Lea más...]
Cómo calcular el consumo máximo de memoria de MySQL
+0 Vote Up -0Vote Down

Para poder dimensionar las variables referentes a tamaños de memoria de un MySQL deberemos tener en cuenta si se trata de un buffer global o bien por thread. Lo podemos calcular automáticamente con la salida de SHOW VARIABLES y esta herramienta online

Las variables siguientes se tratan de buffers globales:

  • key_buffer_size
  • query_cache_size
  • tmp_table_size
  • innodb_buffer_pool_size
  • innodb_additional_mem_pool_size
  • innodb_log_buffer_size

Mientras que las siguientes son por thread:

  • sort_buffer_size
  • read_buffer_size
  • read_rnd_buffer_size
  • join_buffer_size
  [Lea más...]
Error MySQL secure_auth
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/07/mysql-secureauth-error.html

Me dirigí a los errores secure_auth antes cuando la replicación se bloquea en esta entrada del blog . 

Sin embargo, pensé que iba a hacer este blog publicar una solución más general cuando se conecta a través de clientes de MySQL.Esto es para los servidores antes de MySQL 5.6. 

Así que si usted consigue un error secure_auth cuando la conexión a MySQL los siguientes pasos debe





  [Lea más...]
MySQL 5.6: [ERROR] Can’t find messagefile /usr/share/mysql/errmsg.sys
+0 Vote Up -0Vote Down

Instalando una base de datos con MySQL 5.6 nos podemos encontrar con el siguiente error al intentar inicializar el datadir:

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/mysql --basedir=/usr/local/mysql
Installing MySQL system tables...2014-07-15 10:13:45 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
2014-07-15 10:13:45 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2014-07-15 10:13:45 6962 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'

En realidad lo que esta ocurriendo es que no esta encontrando las

  [Lea más...]
MySQL: Listar transacciones bloqueantes
+0 Vote Up -0Vote Down

Anteriormente hemos visto cómo sacar los datos del SHOW PROCESSLIST y además el estado de la transacción InnoDB si es el caso, pero aun así deberemos interpretar la salida para buscar las transacciones que están bloqueando. Si tenemos mucha concurrencia nos pude llegar a ser imposible. Mediante la tabla information_schema.innodb_lock_waits podemos resolver dicho problema

Mediante la tabla information_schema.innodb_lock_waits obtenemos la relación de qué transacción esta bloquenado a que otra:

mysql> desc information_schema.innodb_lock_waits;
+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
  [Lea más...]
MySQL, Ubuntu :: mysqld no tiene los derechos de acceso
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/07/mysql-ubuntu-mysqld-does-not-have.html

Así que hoy se me ocurre que tenga que restaurar una base de datos MySQL desde copias de seguridad para que pudiera recuperar algunas mesas. Mientras que dejé que la base de datos de producción funcionando a través del puerto 3306, he creado la copia de seguridad a través del puerto 3307. 

Sin embargo, cuando traté de iniciar otra versión a través del puerto 3307 en un directorio mysql_restore pero me encontré con algunos errores .... 


/usr/bin/mysqld_safe --defaults-file=/etc/my_3307.cnf 

[Warning] Can't create test file /var/lib/mysql_restore/localhost.lower-test 
[Warning]









  [Lea más...]
MySQL: processlist con el estado de la transacción
+0 Vote Up -0Vote Down

Al realizar un SHOW PROCESSLIST podemos ver el estado de las conexiones a la base de datos, pero nos perdemos completamente el estado de las transacciones:

mysql> show processlist;
+----+------+-----------+--------------------+---------+------+-------+------------------+
| Id | User | Host      | db                 | Command | Time | State | Info             |
+----+------+-----------+--------------------+---------+------+-------+------------------+
| 81 | root | localhost | jordi              | Sleep   |  532 |       | NULL             |
| 82 | root | localhost | information_schema | Query   |    0 | NULL  | show processlist |
| 83 | root | localhost | NULL               | Sleep   |  119 |       | NULL             |
+----+------+-----------+--------------------+---------+------+-------+------------------+
3
  [Lea más...]
MySQL: SYSDATE() vs NOW()
+0 Vote Up -0Vote Down

En MySQL tenemos dos funciones para obtener la fecha actual que difieren muy ligeramente en su funcionamiento SYSDATE() y NOW(). Comparadas en una misma query aparentemente no tienen ninguna diferencia:

mysql> select sysdate(), now();
+---------------------+---------------------+
| sysdate()           | now()               |
+---------------------+---------------------+
| 2014-07-08 19:07:24 | 2014-07-08 19:07:24 |
+---------------------+---------------------+
1 row in set (0.00 sec)

Pero si las analizamos bien con un SLEEP() en medio podremos ver que su comportamiento difiere, con SYSDATE() obtenemos la fecha en la que se ejecuta dicha función:

mysql> select sysdate(), sleep(5), sysdate();
+---------------------+----------+---------------------+
| sysdate()           | sleep(5) |
  [Lea más...]
MySQL: Definir el tamaño de innodb_log_buffer_size
+0 Vote Up -0Vote Down

La variable innodb_log_buffer_size controla el tamaño de un buffer que permite ejecutar transacciones sin tener que escribir el log a disco antes del fin de ésta. Vamos a ver cómo estimar su tamaño

El valor por defecto de dicha variable es de 1MB para versiones de MySQL anteriores a la 5.5 y de 8MB a partir de ésta. Dependerá de la carga del servidor si hace falta ampliarlo, pero 8MB es suficiente para la mayoria de los casos

Mediante la variable de estado Innodb_log_waits podemos ver un contador con las veces que ha sido necesario escribir a disco una transacción que no ha llegado aún al COMMIT

  [Lea más...]
Forzar el uso de UTF8 en MySQL
+0 Vote Up -0Vote Down

En varias ocasiones he visto que se ha empezado un proyecto con el encoding a latin1 y se ha querido migrar a UTF8. Vamos a ver cómo forzar un determinado encoding independientemente de la configuración del cliente de MySQL

Para asegurarnos que las conexiones se establecen con UTF8 podemos usar init-connect pata forzar el cambio a UTF8 mediante un SET NAMES. Además mediante character-set-server y collation-server podemos definir el charset y el collation por defecto del servidor:

[mysqld]
init-connect='SET NAMES utf8'
collation-server = utf8_unicode_ci
character-set-server = utf8
Tags: MySQL

Relacionados


  [Lea más...]
MySQL Error de tabla 1064
+0 Vote Up -0Vote Down
Original post : http://anothermysqldba.blogspot.com/2014/06/mysql-table-error-1064.html

Así que me encontré con una situación extraña hoy. 

Tengo un sistema que crea las tablas de memoria utilizando el PHP $ _COOKIE ['PHPSESSID'] valor. 

Una vez que un poco de trabajo se hace, a continuación, elimina la tabla. 

Dos tablas de ejemplo se encuentran por debajo de mi ejemplo. 


@@VERSION: 5.6.19-log 
CREATE TABLE `f7a7a8d3a7ba75b5eb1712864c9b27eb` ( 
-> `id` int(11) NOT NULL AUTO_INCREMENT, 
-> PRIMARY KEY (`id`) 
-> ) ENGINE=MEMORY; 

CREATE TABLE `8865e52c7e1bea515e7156f240729275` ( 
-> `id` int(11) NOT NULL

















  [Lea más...]
Eliminar usuario de MySQL
+0 Vote Up -0Vote Down

Para poder eliminar usuarios de una base de datos MySQL tenemos el comando DROP USER:

Si indicamos la combinación usuario@host podemos eliminar el acceso del usuario para esos determinados hosts, por ejemplo:

mysql> drop user 'joffrey'@'casterlyrock.com', 'joffrey'@'kingslanding.com';

Si indicamos únicamente el usuario, lo eliminaremos completamente, para todos los hosts:

mysql> drop user joffrey;
Tags: MySQL

Relacionados


  [Lea más...]
MySQL enteros aleatorios
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/06/mysql-random-integers.html

Esto no es una nueva característica, por cualquier medio, pero es una pregunta que me he suceder para ver estallar para arriba de vez en cuando. Así, un ejemplo rápido está siguiendo. 

Para generar un entero aleatorio dentro de MySQL puede utilizar el piso y las funciones de Rand. Los documentos manuales MySQL esta aquí: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html #



  [Lea más...]
Instalación Percona XtraDB Cluster
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/06/installing-percona-xtradb-cluster.html

Así que por supuesto Percona tiene documentación que explica el proceso. El objetivo de este blog es ir a un poco más de detalle, con la esperanza de que puedan ayudar a alguien. 

Los hipervínculos para su revisión: 





  [Lea más...]
Buscar y matar transacciones inactivas. Evitando problemas mayores
+0 Vote Up -0Vote Down

InnoDB se convirtió en el motor de almacenamiento por defecto en MySQL 5.5. Era un paso lógico. Es un motor transaccional, escalable y con un rendimiento superior a MyISAM. Hay que recordar esa frase tan mítica... MyISAM es el lugar donde los datos van para morir. Pero ese cambio ha traído algunas consecuencias. Malas prácticas que en MyISAM no tenían ningún efecto visible en InnoDB pueden causar graves problemas.

Uno de ellos es dejar transacciones abiertas y olvidadas. Y no hablo de minutos o horas, si no días e incluso he llegado a ver semanas. Cuando te contactan y te dicen que hay un problema con alguno de estos síntomas:

  • ibdata1 no para de crecer, nos vamos a quedar sin espacio en disco
  • la base de datos funciona muy lenta y tenemos constantes errores de tiempo de espera
  [Lea más...]
mysqldump: Warning: Skipping the data of table mysql.event
+0 Vote Up -0Vote Down

Al realizar un mysqldump nos podemos encontrar con el siguiente warning:

# mysqldump --all-databases
-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.

Se trata de una alerta por si tenemos habilitado el event scheduler. Podemos consultarlo mediante:

mysql> show variables like '%event%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | OFF   |
+-----------------+-------+
1 row in set (0.00 sec)

Si no lo estamos usando podemos ignorar la tabla para quitar el warning mediante:

--events --ignore-table=mysql.event

Encaso contrario, nos interesa que tengamos backup también de estos jobs, porlo que deberemos añadir:

  [Lea más...]
Forzar el inicio de InnoDB con MySQL +5.1.36
+0 Vote Up -0Vote Down

A partir de la versión 5.1.36 de MySQL, la opción –innodb puede usarse con tres valores para controlar si se arranca o no InnoDB y si se arranca, si es un engine obligatorio para el arranque del daemon de MySQL

Las opciones que podemos pasar a la opción innodb son:

  • OFF: Desactivamos InnoDB
  • ON: Activamos InnoDB, pero si falla en el arranque, el daemon puede arrancar (las tablas del resto de storage engines) a no ser que InnoDB sea el storage engine por defecto (opción –default-storage-engine)
  • FORCE: Aunque InnoDB no sea el storage engine por defecto, si falla no permite el arranque de
  [Lea más...]
Cuadrado mágico MySQL 4x4: Rutinas, Loop, Variables
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-magic-square-4x4-routines-loop.html

Me desvié hoy jugando con cuadrados mágicos y pensé que podría ser una buena oportunidad para dar un ejemplo del uso de rutinas de MySQL, Loops y SI cheques. 

Así que si no son conscientes de lo que es un cuadrado mágico es que he incluido algunos enlaces. Puede ser que le ahorre una búsqueda en Google, pero por lo demás creo Sudoku como un ejemplo. 





  [Lea más...]
Una mirada a MySQL 5.7 DMR
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/05/a-look-at-mysql-57-dmr.html

Así que pensé que ya era hora Miré a MySQL 5.7. Esta es una visión general de alto nivel, pero yo estaba mirando por encima de la MySQL 5.7 en un documento de síntesis: 
Así que estoy empezando con una fresca 


  [Lea más...]
Configuración de clientes MySQL
+1 Vote Up -0Vote Down

Mediante el fichero my.cnf no únicamente podemos configurar el comportamiento del servidor MySQL, sino que también los clientes como el comando mysql o mysqldump

Mediante la sección mysql podemos configurar el cliente del mismo nombre:

[mysql]
socket=/tmp/mysql.sock

De la misma forma que lo podemos hacer para mysqldump:

[mysqldump]
socket=/tmp/mysql.sock

Igual para mysqlhotcopy, pero podemos hacerlo globalmente para todos los clientes locales con la sección client:

[client]
socket=/tmp/mysql.sock

De esta forma podemos configurar los parámetros globales en dicha sección y los específicos de cada herramienta en la propia sin tener que repetir

  [Lea más...]
ERROR MySQL 1118 (42000) MySQL 5.0 a MySQL 5.5 o superior
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-error-1118-42000-mysql-50-to.html 

Así que recientemente he tenido una base de datos que TBs que tenía que actualizar de MySQL 5.0 a MySQL 5.5.
Este blog se referirá a lo siguiente:
  • sql_mode
  • innodb_strict_mode
  • ESCLAVO IO_THREAD
Durante el proceso de mysql_fix_privilege_tables (que hace un mysqlcheck) Rápidamente me di cuenta de el error siguiente:

ERROR 1118 (42000) at line 23: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
Así que empecé tuve que






  [Lea más...]
Showing entries 1 to 30 of 465 Próximo 30 Viejas entradas

Planet MySQL © 1995, 2014, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.