Quantcast
Channel: Softcanon - PHP
Viewing all articles
Browse latest Browse all 3

Cambiar la Colación (Collation) y Juego de Caracteres (Character Set) de Mysql

$
0
0

Al realizar una actualización a un sitio web desarrollado sobre la plataforma Drupal (administrador de contenidos), y al pasar el sitio web al idioma español, nos encontramos que algunas tablas presentaban la colación (collation) errónea y nos mostraba el siguiente error:

user warning: Illegal mix of collations

Afortunadamente con este script de Mysql (ver 5.x o superior), se pueden generar las instrucciones necesarias para corregir el problema en cada tabla:

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'database_name'
ORDERBY 1

Cada línea o instrucción queda de esta manera:

ALTERTABLE `database_name`.`table_name` CONVERTTOCHARACTERSET utf8 COLLATE utf8_general_ci

Reemplaze 'database_name' con el nombre de su base de datos, ejecute la instrucción, copie y pegue el resultado para ejecutarlo y listo!, pan comido...

 

Y por último para asegurarse que la base de datos y tablas nuevas que se creen tengan la misma colación, ejecute:

ALTERDATABASE `database_name`
    DEFAULTCHARACTERSET utf8
    DEFAULTCOLLATE utf8_general_ci;

ALTERDATABASE `database_name`
    CHARACTERSET utf8
    COLLATE utf8_general_ci;


Viewing all articles
Browse latest Browse all 3

Trending Articles