Portada Bases de Datos Actualizar de MySQL 5.5 a MySQL 5.6
Hay una serie de cambios, que describimos a continuación, entre MySQL 5.5 y MySQL 5.6. No son un obstáculo para proceder al necesario cambio de versión. Recuerde que, como cliente de Hostinet, durante este proceso puede contar con el equipo técnico de Hostinet.
Es poco probable que afecten a su web y además al finalizar el proceso de actualización Hostinet revisará y corregirá su base de datos para que pueda beneficiarse de las mejoras de la versión 5.6:
– Columnas TIME, DATETIME y TIMESTAMP: a partir de la versión 5.6.4, estas columnas permiten tener como dato una parte fracional. Si la tabla fue creada en una versión anterior, puede generar resultados no deseados por lo que es recomendable actualizar los datos a través de la sentencia: ALTER TABLE nombre_tabla FORCE.
– Indices fulltext: el fichero de stopwords se carga y las búsquedas se realizan utilizando latin1 cuando character_set_server es ucs2, utf16, utf16le o utf32. Si alguna tabla ha sido creada bajo esta situación, debe ser reparada a través de la sentencia: REPAIR TABLE nombre_tabla QUICK;
– Soporte para la autenticación con formato pre 4.1: El soporte para la autenticación utilizando contraseñas con formato antiguo (formato pre-4.1) ha sido eliminado, ya que estos suponen un riesgo de seguridad. Durante un periodo de 2 meses, Hostinet mantendrá esta opción activada para que los clientes que tienen las contraseñas en este formato, puedan seguir utilizandolas. No obstante, los clientes afectados recibirán en un plazo máximo de 1 mes un email donde se le indica la situación y como debe proceder para solucionarlo. Transcurrido ese tiempo, la directiva se desactivará y aquellos clientes que no hayan cambiado la contraseña experimentarán problemas en sus webs, por lo que les recomendamos que procedan con el cambio cuanto antes
– Cambios en sentencias SQL:
1. Los datos de tipo YEAR(2) tiene algunos problemas que debería tener en cuenta si quiere utilizarlos. A partir de la versión 5.6.6 de MySQL este dato ha sido marcado como DEPRECATED con lo que en un futuro desaparecerá.
2. El uso del valor DEFAULT no está permitido en procedimientos almacenados, parámetros de funciones o en variables locales de procedimientos almacenados (por ejemplo SET variable = DEFAULT).
3. Los campos de tipo TIMESTAMP tiene un comportamiento diferente al resto de tipo de datos en MySQL: – Las columnas TIMESTAMP no declaradas con el atributo NULL se les asigna el atributo NOT NULL. – Si la primera columna TIMESTAMP de la tabla, no es declara con el atributo NULL, DEFAULT o con la clausula ON UPDATE, se le asignan automáticamente los atributos DEFAULT CURRENT_TIMESTAMP y ON UPDATE CURRENT_TIMESTAMP – A las siguientes columnas TIMESTAMP, si no se declaran con el atributo NULL o DEFAULT, se les asignará DEFAULT '0000-00-00 00:00:00' A partir de la versión 5.6.6 estos comportamientos han pasado a DEPRECATED y a menos que se use la directiva explicit_defaults_for_timestamp (la cual está deshabilitada).
En caso de habilitar la directiva, TIMESTAMP se comporta de la siguiente manera: – Las columnas TIMESTAMP de declaradas como NOT NULL aceptan valores NULL. Estableciendo el valor a NULL se mantendrá como NULL y no como el tiempo actual (current timestamp) – Los atributos DEFAULT CURRENT_TIMESTAMP o ON UPDATE CURRENT_TIMESTAMP no se asignan de forma automática.
– Nuevas palabras reservadas: Se han añadido las siguientes palabras reservadas: GET, IO_AFTER_GTIDS, IO_BEFORE_GTIDS, MASTER_BIND