Errore “dmlreadexception” in Moodle: cosa significa e come risolverlo

Analisi tecnica e guida pratica per affrontare uno degli errori più comuni nel database di Moodle.

🔍 Cos'è l'errore dmlreadexception?

Se il tuo Moodle mostra un messaggio come:
dmlreadexception – Error reading from database
significa che qualcosa è andato storto nel momento in cui Moodle ha cercato di leggere i dati dal database. Questo errore è generato dal DML (Data Manipulation Layer), cioè il livello che Moodle usa per comunicare con il database.

🧠 Le cause più comuni

  • Query SQL errate da plugin malfunzionanti
  • Record mancanti o dati corrotti
  • Connessione instabile al database
  • Charset incompatibile o permessi sbagliati
  • Update di Moodle interrotto o non completato

🛠 Attiva il Debug

Vai su Amministrazione > Sviluppo > Debugging
Imposta il livello su DEBUG_DEVELOPER e attiva “Mostra messaggi di debug”.
Ricarica la pagina per visualizzare lo stack completo dell'errore.

🪵 Controlla i log del server

Se usi Plesk, cPanel o un altro pannello, accedi al file error_log.
Cerca righe collegate a Moodle o MySQL per individuare il punto esatto del problema.

🔧 Soluzioni pratiche

➡️ Plugin difettoso

Disattiva i plugin uno alla volta via database o intervenendo nel file config.php.

➡️ Record mancanti nel database

Esegui:
php admin/cli/check_database_schema.php
per individuare incongruenze nella struttura del database.

➡️ Upgrade non completato

Accedi a /admin e verifica se l’aggiornamento è rimasto in sospeso.
Controlla i permessi su moodledata (consigliati 755/644).

🚨 Non riesci a risolvere?

Se l'errore persiste:

  • Controlla le versioni PHP/MySQL
  • Fai un backup completo e prova su staging
  • Consulta un tecnico esperto in Moodle

📌 Conclusione

L’errore dmlreadexception è fastidioso ma nella maggior parte dei casi è risolvibile senza perdita di dati.
Con il debug attivo e un controllo mirato, puoi sistemarlo anche in autonomia o con l’aiuto di un tecnico.

Serve aiuto con Moodle?

Posso analizzare il tuo sito e risolvere errori database o altri problemi tecnici in modo rapido e sicuro.