Home
» AMMINISTRAZIONE DI RETE
»
Risolvere l'errore "Database Error" dell'interfaccia Web di Nextcloud dopo un aggiornamento: guida pratica al ripristino
Risolvere l'errore "Database Error" dell'interfaccia Web di Nextcloud dopo un aggiornamento: guida pratica al ripristino
Un messaggio di errore nella WebGUI di Nextcloud, come ad esempio "Eccezione: Errore del database", che compare subito dopo un aggiornamento, di solito significa che l'applicazione web riesce a caricarsi a sufficienza per raggiungere il livello del database, ma che una query, una migrazione, un'aspettativa dello schema, una connessione o un'operazione sul database specifica dell'applicazione non riesce. Non iniziare eliminando tabelle, reinstallando Nextcloud o ripristinando una vecchia directory di codice su quella nuova. La procedura più sicura consiste nell'identificare l'SQL o la migrazione che causa l'errore, completare il percorso di aggiornamento supportato, riparare solo ciò che Nextcloud è in grado di riparare e verificare il servizio e lo schema del database prima di riaprire l'accesso.
Questo riferimento segue la documentazione di amministrazione di Nextcloud 35 disponibile a ottobre 2026. I comandi seguenti presuppongono un'installazione standard in stile Debian/Ubuntu con /var/www/nextcloudl'utente del server web www-data. Modificare il percorso, il binario PHP, il comando del container o l'utente HTTP in base alla propria implementazione.
Diagnosi rapida: a cosa di solito punta l'errore
Ciò che vedi
Ramo probabile
Prima verifica
L'errore si è verificato subito dopo la sostituzione dei file di Nextcloud.
Le migrazioni del database/dell'applicazione non sono state completate
occ statuseocc upgrade
Il registro indica che una tabella o una colonna non esiste.
Migrazione incompleta, incompatibilità delle app o deriva dello schema
occ upgrade, quindi ispezione dello schema
Il registro indica che la connessione è stata rifiutata, il file non esiste o il server non è più disponibile.
Problema relativo al servizio di database, al socket, all'host, alle credenziali o alla versione.
Servizio di database econfig.php
L'errore fa riferimento a uno spazio dei nomi di un'app di terze parti o alle sue tabelle.
L'app è incompatibile o la migrazione non è riuscita.
Disabilita quell'app dalla riga di comando e riprova l'aggiornamento.
La panoramica amministrativa segnala indici/colonne/chiavi primarie mancanti
Rimane il lavoro opzionale sullo schema post-aggiornamento
Eseguire i db:add-missing-*comandi documentati
Un'eccezione del database nell'interfaccia WebGUI è un sintomo. La prova utile è la voce di registro corrispondente e lo stato di aggiornamento, non solo il messaggio generico del browser.
1. Preservare lo stato corrente prima di apportare modifiche al database.
Se disponi ancora del backup precedente all'aggiornamento, non modificarlo. Nextcloud raccomanda esplicitamente di eseguire un backup prima di ogni aggiornamento e il backup integrato dell'aggiornamento copre il codice sorgente, ma non esegue il backup del database o della directory dei dati . Se non disponi di un backup aggiornato del database, creane uno con lo strumento di backup standard della tua piattaforma di database prima di tentare modifiche o ripristini manuali del codice SQL.
Evitate di ricorrere al downgrade come soluzione rapida. Nextcloud dichiara che il downgrade non è supportato e può danneggiare i dati. Se si rende necessario un rollback, il modello di ripristino supportato prevede una nuova installazione della versione precedente seguita dal ripristino di un backup corrispondente, non la copia dei vecchi file di programma su un database che ha già avviato la migrazione. Consultate la documentazione dell'aggiornamento integrato di Nextcloud .
2. Leggi l'eccezione esatta del database nel log di Nextcloud.
Con la registrazione su file, il file di log predefinito si trova nextcloud.lognella directory dei dati configurata. La guida alla risoluzione dei problemi di Nextcloud consiglia di controllare tale file di log e, se pertinente, i log del server web e di PHP. Se la pagina di errore mostra un ID di richiesta, cerca tale ID per isolare la transazione corrispondente.
Non ridurre il log alla sola frase "Errore del database". Acquisisci il codice SQLSTATE, la classe dell'eccezione, la tabella o la colonna che ha causato l'errore e l'app o il componente principale indicato nello stack trace. Ad esempio, "la tabella non esiste" è un errore molto diverso da "troppe connessioni" o "il server MySQL non è disponibile". Nextcloud elenca diversi errori comuni in stile SQLSTATE nella sua documentazione generale sulla risoluzione dei problemi .
Utilizzare la voce di registro completa per identificare se l'errore è dovuto a un oggetto dello schema mancante, a una connessione non riuscita o a una query di database specifica dell'applicazione.
3. Verifica che l'aggiornamento sia effettivamente terminato.
L'aggiornamento integrato sostituisce prima il codice di Nextcloud. Le migrazioni del database e delle app sono una fase separata. In modalità riga di comando, l'aggiornamento può essere eseguito occ upgradeautomaticamente; altrimenti, la migrazione deve essere completata successivamente. Questa distinzione spiega molti casi in cui l'aggiornamento sembrava "terminato", ma la normale interfaccia WebGUI restituisce un'eccezione del database.
cd /var/www/nextcloud
sudo -E -u www-data php occ status
Se è necessario proteggere l'istanza durante la risoluzione dei problemi, abilitare la modalità di manutenzione. Nextcloud descrive la modalità di manutenzione come la modalità pensata per gli aggiornamenti, poiché impedisce nuovi accessi e blocca le sessioni attive.
Prima di eseguire i comandi di riparazione o migrazione, verifica la versione installata e lo stato di manutenzione, quindi impedisci agli utenti di accedere al sistema durante il processo di ripristino.
4. Completa le migrazioni del database e dell'app supportate con occ upgrade
Se il codice è stato aggiornato ma le migrazioni non sono state completate, eseguire il comando di aggiornamento come utente HTTP:
cd /var/www/nextcloud
sudo -E -u www-data php occ upgrade
Monitora l'output finché il comando non segnala un esito positivo o non si interrompe a causa di un errore specifico. In caso di errore, risolvi il problema prima di ripetere il comando. I problemi più comuni includono un'applicazione incompatibile, una versione di PHP/database non supportata, un servizio di database non disponibile o autorizzazioni che impediscono gli aggiornamenti necessari. Non aggiornare ripetutamente l'interfaccia WebGUI durante la migrazione.
La documentazione di aggiornamento di Nextcloud avverte inoltre di non saltare le versioni principali. Quando si passa da una versione principale all'altra, è consigliabile aggiornare una versione principale alla volta.
La soluzione decisiva per recuperare un aggiornamento incompleto è lasciare che Nextcloud esegua le proprie migrazioni e si fermi al primo errore concreto che necessita di correzione.
5. Eseguire la procedura di ripristino di Nextcloud dopo aver corretto il problema di migrazione.
maintenance:repairEsegue i passaggi di riparazione di Nextcloud e viene eseguito automaticamente anche durante gli aggiornamenti. Eseguirlo manualmente è consigliabile dopo aver risolto il problema che ha interrotto l'aggiornamento.
sudo -E -u www-data php occ maintenance:repair
Questo è più sicuro rispetto all'invenzione di istruzioni SQL perché i passaggi di riparazione sono forniti dal core e dalle app di Nextcloud. Non è una soluzione miracolosa occ upgradee non risolverà i problemi di un server di database non funzionante o di una versione del database non supportata. Il comando è documentato nei comandi di sistema e manutenzione di Nextcloud .
Eseguire maintenance:repair dopo aver corretto l'errore di aggiornamento sottostante; questo comando esegue la logica di riparazione fornita da Nextcloud e dalle app installate.
6. Verificare il servizio di database, le impostazioni di connessione e la versione supportata.
Se il log indica un problema di connettività anziché di schema, verificare che il servizio di database sia in esecuzione e raggiungibile dall'ambiente PHP di Nextcloud. Su un tipico host MariaDB, un controllo utile è il seguente:
sudo systemctl status mariadb
Successivamente, esamina le impostazioni del database config/config.php: tipo di database, host, nome del database, utente e qualsiasi impostazione di socket o porta. Un errore del socket Unix può apparire come "File o directory non esistente", mentre un database remoto può non funzionare a causa di problemi di routing, DNS, TLS, regole del firewall, credenziali o del server stesso.
La compatibilità delle versioni è fondamentale dopo un aggiornamento importante di Nextcloud. Per Nextcloud 35, le note di rilascio ufficiali indicano che MariaDB 10.6 e MySQL 8.0 non sono più supportati; i requisiti minimi documentati sono MariaDB 10.11 LTS e MySQL 8.4 LTS. Verifica i requisiti specifici per la tua versione di Nextcloud prima di aggiornare il database autonomamente. Consulta la sezione "Aggiornamento a Nextcloud 35" .
Quando il registro segnala un errore di connessione, verificare che il demone del database sia in esecuzione prima di modificare lo schema di Nextcloud o le impostazioni dell'app.
7. Esaminare le derive dello schema e aggiungere solo le strutture mancanti documentate
Nextcloud 35 introduce una funzionalità db:schema:checkche confronta lo schema live con lo schema previsto dal core installato e dalle migrazioni delle app. È di sola lettura: segnala le differenze senza modificare il database.
Se la panoramica amministrativa o l'output del comando segnalano la mancanza di colonne facoltative, indici o chiavi primarie, utilizzare i comandi di manutenzione documentati:
Ciascuno supporta --dry-runl'anteprima del codice SQL. Questi comandi non devono essere utilizzati in sostituzione di una migrazione del core non riuscita. Se db:schema:checkvengono segnalati oggetti imprevisti o differenze nelle proprietà delle colonne, esaminare il risultato prima di apportare qualsiasi modifica; Nextcloud segnala che alcune impostazioni predefinite a livello di database sono al di fuori del modello di schema previsto. Il riferimento ufficiale ai comandi è Nextcloud DAV e comandi del database .
Eseguire prima l'ispezione dello schema, quindi applicare i comandi per la gestione degli schemi mancanti supportati da Nextcloud solo quando l'output o la panoramica amministrativa indicano che sono necessari.
8. Isolare i malfunzionamenti delle applicazioni di terze parti prima di riaprire l'interfaccia Web.
Se la traccia dello stack indica un'app non distribuita, la sua migrazione potrebbe essere incompatibile con la nuova versione del server. La guida alla risoluzione dei problemi di Nextcloud consiglia di disabilitare le app di terze parti/non distribuite durante gli aggiornamenti e la risoluzione dei problemi. Utilizza i comandi dell'app disponibili nella versione installata per disabilitare l'app sospetta specifica dalla riga di comando, esegui nuovamente occ upgradeil comando e riabilita l'app solo dopo aver verificato una versione compatibile.
Questo ramo è particolarmente importante quando le tabelle principali sembrano integre, ma l'eccezione fa riferimento a un namespace di un fornitore o a una tabella appartenente a un'applicazione. Rimuovere manualmente le tabelle di tale applicazione è rischioso perché si potrebbero distruggere dati che l'applicazione si aspetta ancora di trovare.
9. Esci dalla modalità di manutenzione e verifica più della pagina di accesso
Una volta occ upgradecompletate le verifiche di riparazione/schema, se queste non mostrano più problemi di blocco e il servizio del database è stabile, disabilitare la modalità di manutenzione:
Successivamente, verifica l'istanza a più livelli: carica la pagina di accesso, accedi, apri File, esplora alcune cartelle, prova a caricare/scaricare un file, controlla le impostazioni di amministrazione per eventuali avvisi e rivedi le nextcloud.logvoci più recenti. Verifica inoltre che i processi cron/in background siano in esecuzione correttamente. Il ripristino della homepage da solo non è sufficiente a dimostrare che le migrazioni delle app, le operazioni sui file e le attività in background funzionino correttamente.
Dopo che i controlli del database e della migrazione sono andati a buon fine, riaprire l'interfaccia WebGUI e verificare la normale navigazione dei file e le operazioni di base prima di dichiarare l'aggiornamento completato.
Lista di controllo per il recupero
Conserva il backup precedente all'aggiornamento ed evita un downgrade non supportato.
Leggere l'eccezione completa del database in nextcloud.log, inclusi SQLSTATE e il componente denominato nella traccia.
Durante la riparazione, verificare occ statuse mettere l'istanza in modalità di manutenzione.
Eseguire occ upgradeper completare le migrazioni del core e delle app supportate.
Invece di modificare le tabelle del database alla cieca, è meglio correggere prima l'ostacolo concreto.
Eseguire l'operazione maintenance:repairdopo aver risolto il problema di fondo.
Verificare lo stato del servizio di database, le impostazioni di connessione e la compatibilità delle versioni.
Utilizzare db:schema:checksu Nextcloud 35 e i db:add-missing-*comandi documentati, ove appropriato.
Se la traccia indica chiaramente che l'applicazione di terze parti sta causando il problema, disattivala e poi riprova l'aggiornamento.
Disattiva la modalità di manutenzione solo dopo che i controlli da riga di comando sono andati a buon fine, quindi verifica file, trasferimenti, avvisi amministrativi, registri e processi in background.
Quando è meglio restaurare che riparare
Ripristina da un backup noto e internamente coerente quando il database stesso è danneggiato, le migrazioni hanno parzialmente modificato i dati in un modo che non è possibile annullare in modo sicuro o tabelle/dati necessari sono stati eliminati al di fuori di Nextcloud. Il database, la configurazione, la directory dei dati e la versione del codice devono appartenere a un punto di ripristino compatibile. Se disponi di un supporto Nextcloud a pagamento o di un'implementazione critica per l'azienda, interrompi prima di eseguire operazioni SQL distruttive e segnala il problema fornendo la voce di log completa, le versioni esatte di Nextcloud di origine e di destinazione, il tipo/versione del database, la versione di PHP e l'output del occcomando pertinente.
Il principio fondamentale è semplice: un "Errore del database" dopo un aggiornamento non è un motivo per improvvisare con SQL. Lasciate che il log identifichi l'errore, completate occ upgradele migrazioni previste, utilizzate gli strumenti di riparazione e di gestione dello schema di Nextcloud e validate la piattaforma del database prima di riaprire l'istanza.