Forzar el uso de UTF8 en MySQL

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

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 AUTO_INCREMENT, 
-> …

[Lea más]
Eliminar usuario de MySQL

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

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 # function_rand 

"  …

[Lea más]
Instalación Percona XtraDB Cluster

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

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 agotado esperando bloqueos de filas

Ya casi tenemos claro donde está el problema. Un SHOW ENGINE …

[Lea más]
Buscar y matar transacciones inactivas. Evitando problemas mayores

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 agotado esperando bloqueos de filas

Ya casi tenemos claro donde está el problema. Un SHOW ENGINE …

[Lea más]
mysqldump: Warning: Skipping the data of table mysql.event

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:

--events

Tags: …

[Lea más]
Forzar el inicio de InnoDB con MySQL +5.1.36

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 mysqld

Por lo tanto, podemos …

[Lea más]
Cuadrado mágico MySQL 4x4: Rutinas, Loop, Variables

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]