Resolviendo el Error de Unicode en la Instalación de Moodle con MariaDB
Recientemente, al intentar instalar Moodle 4 en un entorno local utilizando MariaDB, me encontré con el siguiente error:
Es necesario que almacene todos sus datos en formato Unicode (UTF-8). Las instalaciones nuevas deberían ejecutarse en bases de datos cuyo juego de caracteres por defecto fuera Unicode.
Este error se debe a que Moodle requiere que tanto la base de datos como las tablas estén configuradas para usar el conjunto de caracteres UTF-8, específicamente utf8mb4, que es capaz de almacenar todos los caracteres Unicode. A continuación, te cuento cómo lo solucioné.
Solución al Problema de Unicode en Moodle
Primero, verifiqué la configuración de mi servidor MariaDB, asegurándome de
que estuviera utilizando el conjunto de caracteres correcto. Modifiqué mi
archivo my.ini
de MariaDB, agregando las siguientes líneas en la
sección [mysqld]
:
[client]
default-character-set = utf8mb4
[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = 1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
Después de reiniciar el servidor de bases de datos, también me aseguré de que la base de datos de Moodle estuviera correctamente configurada. Para ello, ejecuté los siguientes comandos en MariaDB:
ALTER DATABASE moodle CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Además, verifiqué que todas las tablas estuvieran utilizando el mismo conjunto de caracteres, y en caso contrario, utilicé el siguiente comando para corregirlas:
ALTER TABLE nombre_de_tabla CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Modificación del Archivo config.php
Finalmente, modifiqué el archivo config.php
de Moodle para
asegurarme de que estuviera correctamente configurado para utilizar Unicode.
Este es el fragmento relevante del archivo:
$CFG->dboptions = array (
'dbpersist' => 0,
'dbport' => '',
'dbsocket' => '',
'dbcollation' => 'utf8mb4_unicode_ci',
);
Tras realizar estas modificaciones, el error desapareció y Moodle pudo instalarse correctamente con MariaDB utilizando UTF-8. ¡Problema resuelto!