En esta ocasión os vamos a explicar qué hay que hacer cuando en la instalación de un Moodle 3.x con motor de base de datos MariaDB, llegamos al punto en el que chequea si el sistema coumple los requisitos mínimos y nos muestra estos errores:

Información Informe Plugin Estado
mysql_full_unicode_support#File_format

Su base de datos tiene tablas que están usando Antelope como sistema de ficheros. Para un soporte completo de UTF-8 en MySQL y MariaDB requiere Barracuda como sistema de ficheros. Por favor convierta las tablas al sistema de ficheros Barracuda. Mire la documentación Administración vía línea de comandos para ver los detalles de alguna herramienta para convertir las tablas de InnoDB a Barracuda.

Revisar
mysql_full_unicode_support#Large_prefix

Para el soporte completo de UTF-8 en MySQL y MariaDB se requiere cambiar la opción de MySQL ‘innodb_large_prefix’ a ‘ON’. Mira la documentación para más detalles.

En este caso, la solución es bien sencilla: necesitaremos conectarnos a la base de datos (vía SSH o por PHPMyAdmin pero con usuario con plenos permisos en nuestra base de datos) y ejecutar estas 3 instrucciones dentro de la base de datos con la que vamos a trabajar:

SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=ON;
set global innodb_large_prefix = ON;

Después de esto, refrescamos la ventana de instalación de Moodle y la instalación nos dará el ok para poder seguir el proceso.

Hace poco tuve un problema con un servidor: se quedó sin espacio en disco. Al limpiarlo, empezó la base de datos a dar errores. Fuí al log de MySQL y me encontré con muchas líneas de error, pero el que me llamó la atención me decía que “Incorrect key file for table ‘/tmp/#sql_3c51_0.MYI’; try to repair it”. Básicamente era que no podía ejecutar SQL grandes porque el espacio en /tmp no era suficiente.

Las soluciones al error pasaban por hacer backup de todas las BD, descargártelas, borrar ciertos archivos y volver a restaurarlas, pero yo dudaba de que ese trabajo sirviera de algo. Entonces encontré esta explicación:

Por defecto, MySQL tiene asignado el directorio /tmp del raíz para hacer sus tareas. Cuando la partición raíz está llena, Debian (o Ubuntu en mi caso), crea en RAM una partición /tmp de 1 mega para que MySQL siga funcionando para las funciones básicas, pero no para traerse datos de uan web, por ejemplo. Si hacemos df -h, veremos una línea parecida a esta:
[crayon-5b4ec2d9d5dc8988298419/]
La solución consiste simplemente en borrar esa partición, y volverá a coger el directorio /tmp del raíz. Es decir, hacemos
[crayon-5b4ec2d9d5dd3761311139/]
Y para estar más seguros reiniciaremos el servicio de MySQL. Y todo arreglado.

 

Si no nos interesan los logs, borraremos todos los registros de las tablas
log_customer
log_visitor
log_visitor_info
log_url log_url_info
log_quote
report_viewed_product_index
report_compared_product_index
report_event
catalog_compare_item

Se puede meter en cron para que salte la limpieza 1 vez al mes, por ejemplo:
php -f shell/log.php clean

También puede hacerse en la interfaz del administrador: Sistema->Configuración->Avanzado->Sistema->Log
Habilitamos la limpieza de logs y definimos la frecuencia de borrado. Guardamos y ya está todo.

Si nos interesan (por temas de estadísticas de visitas), dejaremos los del último mes o los 2 últimos meses.