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 455 Próximo 30 Viejas entradas
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
  [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...]
Benchmark MySQL con mysqlslap
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/05/mysql-benchmark-with-mysqlslap.html

Así que la evaluación comparativa de diferentes consultas de MySQL en contra de su base de datos es una cosa sabia que hacer. Eso debería ser evidente. Mientras que optimizamos consultas lo mejor que podemos utilizar explicar (y EXTENDIDO) llevándolos tiempo para compararlas deberían resultar útiles. 

Este es un simple ejemplo de ejecución de una sentencia mysqlslap. 

Para este ejemplo he cargado la base de datos de MySQL MUNDO. (





  [Lea más...]
Entendiendo el binlog
+0 Vote Up -0Vote Down

El archivo mysql binlog es uno de los logs que contiene todos los cambios que se realizan dentro de nuestro servidor de base de datos.
Estos cambios son, los insert, deletes, updates, drop, y create.
Este log es usado para la replicacion de mysql como tambien para realizar recovery de la base de datos.
Los logs estan guardados en un formato binario y se los puede ver unicamente con el programa cliente mysqlbinlog.

Formato del log

Hay tres posibles formatoS:

Statement
Row Based
Mixed (Recomendado)

Este formato puede ser seteado desde el my.cnf con la variable “binlog_format=xxxxx ”

Password root de MySQL en Plesk
+0 Vote Up -0Vote Down

En el caso que necesitemos entrar en el MySQL de una maquina con Plesk para evitar tener que usar el interfaz gráfico, primero deberemos localizar el password de root del MySQL

Podemos encontrar el fichero /etc/psa/.psa.shadow que contiene el password de root del MySQL:

# cat /etc/psa/.psa.shadow
$AES-128-CBC$L0T0rD0u0CN0W0KB0T0n0w==$k050f0090g0E0fk0L0d0F0==

A primera vista diremos: ¡Esta cifrado!

Pero no, este es litralemente el password de root del MySQL, el único detalle es que el usuario administrador no se llama root como es habitual, sino que se llama admin. Por lo tanto, para conectarnos al MySQL como root de un Plesk deberemos ejecutar:

# mysql -uadmin -p$(cat
  [Lea más...]
Particiones MySQL timestamp - fecha y hora
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-partitions-timestamp-datetime.html

Así que hace poco me di cuenta de que aún no he hablado mucho sobre las particiones de MySQL.
Muchos mensajes de blog en buenas particiones MySQL ya existe y yo hemos enumerado algunos abajo.




  [Lea más...]
Heartbleed asegurar y MySQL
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/04/heartbleed-secure-mysql.html
Pues mucha preocupación, y con razón, se ha hecho sobre el bug heartbleed recientemente.

No creo que yo debería tratar de añadir mucho más de los que considero los expertos ya han mencionado. Si usted no ha revisado los siguientes mensajes que deberías.




  [Lea más...]
Las foreign keys implican un índice
+0 Vote Up -0Vote Down

En las bases de datos, no nos interesa tener índices duplicados para evitar el coste extra que implica actualizarlos (además del espacio en disco). Por eso, deberemos tener en cuenta que si creamos una foreign key, estamos también creando un índice sobre dicha columna y por lo tanto, no es necesario crear otro índice:

Podemos verlo mediante las siguientes dos tablas, t2 tiene una foreign key sobre el segundo campo:

mysql> create table t1(id int primary key);
Query OK, 0 rows affected (0.08 sec)

mysql> create table t2 (id int primary key, id2 int, constraint k foreign key (id2) references t1(id));
Query OK, 0 rows affected (0.06 sec)

Insertamos unos datos de ejemplo:

mysql> insert into t1 values (1),(2);
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql>
  [Lea más...]
Instalación WebScaleSQL resuelto ... parte 2
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/04/webscalesql-installation-solved-part-2.html

Se trata de un seguimiento de la: Instalación WebScaleSQL intentado ... parte 1

Así que ser un geek típico, desarrollador, idiota o lo que sea .. No pude



  [Lea más...]
Vincular MySQL-MariaDB en MS Access
+0 Vote Up -0Vote Down

La entrada de hoy es breve, pero incluye algunas recomendaciones bastante importantes, que me han tenido entretenido buena parte de la mañana (y yo sin saberlo). El objetivo es vincular una tabla que tenemos en un servidor MySQL o MariaDB, utilizando ODBC, con Microsoft Access (o sea, hacer de MS Access el front-end de MySQL). …

Continuar leyendo »

Esta entrada Vincular MySQL-MariaDB en MS Access es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance Vincular MySQL-MariaDB en MS Access is created by Manejando datos - Blog de bases de datos y programación

MySQL Explicar y SQL_NO_CACHE
+0 Vote Up -0Vote Down
Original post: http://anothermysqldba.blogspot.com/2014/04/mysql-explain-sqlnocache.html

Así que hoy me estaba ayudando a alguien con su rendimiento de base de datos y corrió a través de algunas consultas mal escritos. Ahora, sin duda todo el mundo comete errores, el objetivo es hacer todo lo posible para evitarlos.

Así que sólo un par de consejos útiles que hacer antes de dejar una consulta suelta a su entorno.

Siempre ejecutar la consulta a través de explicar primero. Algo tan simple como hacer a explicar primero confirmará sin faltas de ortografía (ya que no se ejecutará), y le permitirá optimizar la consulta.
Ya existen varios enlaces sobre cómo utilizar explique:








  [Lea más...]
mysqldump: Backup de stored procedures
+0 Vote Up -0Vote Down

Curiosamente, por defecto, están habilitados los triggers pero no los stored procedures en MySQL:

# mysqldump --help | grep ^routines\|^trigg -E
routines                          FALSE
triggers                          TRUE

Por lo tanto, para hacer backup de los stored procedures deberemos añadir la opción –routines:

# mysqldump -u root -p --routines --all-databases > fichero.sql

Si únicamente necesitamos los stored procedures, pero no los datos en si, deberemos añadir las opciones –no-create-info –no-data –no-create-db para quitar el resto de datos:

# mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt --databases systemadmin >
  [Lea más...]
Showing entries 1 to 30 of 455 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.