Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

de Jorge Malaga -España -
Número de respuestas: 5
Primero un saludo...es un placer ver que todo este proyecto sigue en marcha con grandes mejoras y avances....nos queda mucho por ver....Quien sabe... quizás una IA que mantenga y actualicé Moodle...jeje

Hace unos días el Administrador del Webserver me aviso de que se actualizaba el servidor MySQL a la versión 8... y cada vez que escucho "hay que actualizar" se me cae la tensión arterial a 11...

y efectivamente...me bajo a 11....Al acceder a Moodle 3.3.2+ (Build: 20171019) para revisar el funcionamiento, cualquier cambio en los cursos, usuarios, administración, da como resultado invalidmysqlnativetype

Sospecho, y sospecho bien, que por la antigüedad de este Moodle 3.3.2+ pide a gritos una actualización. Al intentar activar el "modo mantenimiento" me da invalidmysqlnativetype, y directamente no se puede... Tengo que actualizar Moodle, pero, ¿como activo el modo mantenimiento para que nadie interfiera?

¿Tengo que volver atrás en MySQL y actualizar Moodle y después el resto del sistema?

Cuando dispones de un pequeño entorno Servidor + Moodle, el mantenimiento es obligado pero ¿cual es el orden de los factores? ¿Primero el servidor y después Moodle o a la inversa? Ya me paso algo parecido cuando PhP comenzó a actualizar de la versión 5 a la 8.... También recuerdo una actualización que el mismo instalador reviso y actualizo el coteja miento de las base de datos MySQL para utf8...

Bueno, resumiendo, las consultas son:
¿Puedo normalizar Moodle 3.3.2 con MySQL 8 de alguna forma, eliminar este error y poder realizar tareas administrativas sin recibir el error invalidmysqlnativetype?
¿Cual es el orden recomendado en las actualizaciones Apache, PhP, MySQL y Moodle?
¿Hay algún método recomendado para actualizar Moodle, en estas situaciones atípicas? Observo que se ha conservado la forma de actualizar Moodle, que sinceramente es bastante manual... y ha veces me trae sorpresas... como esta: invalidmysqlnativetype
Cualquier experiencia, documentación o ayuda,  respecto a estas actualizaciones, de versiones antiguas...será bienvenida y de agradecer.
Ya os comentaré si sobreviví al intento.
Saludos.
Promedio de valoraciones: -
En respuesta a Jorge Malaga -España

Re: Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

de Juan Antonio Moreno Carmona -
Imagen de Moodlers de gran ayuda
Hola Jorge.

En efecto, tu instalación de moodle está pidiendo a gritos una actualización. Buscando en los foros he encontrado un hilo, en realidad varios, acerca de este mismo problema. Vamos a intentarlo.

Utiliza el CPanel de tu hosting o cualquier otra herramienta de la que dispongas para acceder a los ficheros de tu instalación. Busca el fichero moodle/lib/dml/mysqli_native_moodle_database.php y cámbiale el nombre a algo como mysqli_native_moodle_database.php.back para poder revertir los cambios en caso de que no funcione. A continuación copia el fichero que adjunto aquí en esa misma ruta, sustituyendo al fichero original. Reinicia el servidor mysql y cruza los dedos.

Con suerte, el problema habrá desaparecido y podrás gestionar tu moodle. La primera versión de moodle en soportar mysql 8 es la versión 3.5.

Saludos.
En respuesta a Juan Antonio Moreno Carmona

Re: Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

de Jorge Malaga -España -
Estimado José Antonio. Primero agradecerte la ayuda. En cuanto al archivo, lo probare. Por otro lado he montado un servidor para pruebas en local para instalar en limpio, Moodle 4.3+ MOODLE_403_STABLE. Esta versión pide que MariaDB tenga la versión, MariaDB 10.6.7 y tengo instalada la ultima que aparece en el repositorio de Debian 11 que es MariaDB 10.5.21 ¿Es estricto este requisito? He intentado actualizar MariaDB pero la ultima versión disponible es esta. Por otro lado he probado agregar alguno de los repositorios recomendados para mariadb.org y no hay manera...de hecho hay hasta un foro abierto por el mismo problema con los repos... ¿Podría instalar sobre esta versión mas antigua de MariaDB? ¿Tenemos algún margen de maniobra en instalaciones nuevas con la versión de la DB o en las actualizaciones, donde normalmente se encuentra uno con actualizaciones de parte del servidor? Gracias anticipadas por tus comentarios.
En respuesta a Jorge Malaga -España

Re: Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

de Juan Antonio Moreno Carmona -
Imagen de Moodlers de gran ayuda
Hola Jorge.
No sé qué procedimiento has seguido para añadir los repositorios de mariadb, pero es perfectamente posible. Además, el repositorio es mantenido por los chicos de mariadb lo que ofrece confianza.
En primer lugar, desinstala la versión por defecto de los repositorios, la 10.5.21, y sigue este procedimiento para instalar la versión 10.11 que tiene soporte hasta 2028.
sudo apt-get --purge remove mariadb-server

sudo apt update && sudo apt -y full-upgrade
curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
sudo bash mariadb_repo_setup --mariadb-server-version=10.11
sudo apt update
sudo apt install mariadb-server

Esa versión de mariadb te funcionará sin problemas con la última versión de moodle.


En respuesta a Juan Antonio Moreno Carmona

Re: Moodle 3.5 y MySQL 8 error/invalidmysqlnativetype

de Jorge Malaga -España -
Gracias Juan Antonio. Me has ayudado muchísimo.
Entiendo que cuando dices "desinstala la versión por defecto de los repositorios, la 10.5.21" también propria actualizar la versión sin desinstalar. Lo digo porque ya tengo varias bases de datos configuradas... Si desinstalo se borran las bases de datos que existan ¿verdad?

Gracias por los repos. Me los quedo. Saludos.