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 vediRamo probabilePrima verifica
L'errore si è verificato subito dopo la sostituzione dei file di Nextcloud.Le migrazioni del database/dell'applicazione non sono state completateocc statuseocc upgrade
Il registro indica che una tabella o una colonna non esiste.Migrazione incompleta, incompatibilità delle app o deriva dello schemaocc 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 mancantiRimane il lavoro opzionale sullo schema post-aggiornamentoEseguire i db:add-missing-*comandi documentati
Pagina del browser Nextcloud che mostra un'eccezione e un errore del database dopo un aggiornamento
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.

sudo -u www-data tail -n 100 /var/www/nextcloud/data/nextcloud.log

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 .

Finestra del terminale che mostra una voce di registro di Nextcloud con un'eccezione del database e i dettagli di SQLSTATE.
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.

sudo -E -u www-data php occ maintenance:mode --on
sudo -E -u www-data php occ status
Il terminale mostra lo stato occ di Nextcloud seguito dall'attivazione della modalità di manutenzione.
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.

Finestra del terminale che mostra il comando Nextcloud occ upgrade in esecuzione, con le fasi di aggiornamento del database e dell'app.
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 .

Il terminale mostra il comando di riparazione della manutenzione di Nextcloud al termine delle fasi di riparazione.
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" .

Il terminale mostra lo stato del servizio MariaDB come attivo e in esecuzione.
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.

sudo -E -u www-data php occ db:schema:check
sudo -E -u www-data php occ db:schema:check -v

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:

sudo -E -u www-data php occ db:add-missing-columns
sudo -E -u www-data php occ db:add-missing-indices
sudo -E -u www-data php occ db:add-missing-primary-keys

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 .

Terminale che mostra i comandi per verificare lo schema del database di Nextcloud e aggiungere colonne, indici e chiavi primarie mancanti.
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:

sudo -E -u www-data php occ maintenance:mode --off

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.

L'interfaccia di Nextcloud Files si apre in un browser, mostrando le cartelle Documenti, Foto e Modelli.
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.

Lascia un commento

Confronto tra strumenti di monitoraggio open-source e closed-source.

Confronto tra strumenti di monitoraggio open-source e closed-source.

Confronta strumenti di monitoraggio open source e proprietari in base a costi, supporto, personalizzazione, sicurezza e opzioni disponibili, tra cui Zabbix, Nagios, PRTG e altri.

I migliori server TFTP per Windows, Linux e macOS

I migliori server TFTP per Windows, Linux e macOS

Confronta i migliori server TFTP per Windows, Linux e macOS, tra cui SolarWinds, Tftpd64, tftpd-hpa, atftpd, haneWIN e dnsmasq.

5 migliori alternative a Microsoft Access per database desktop e web

5 migliori alternative a Microsoft Access per database desktop e web

Confronta cinque alternative a Microsoft Access per la gestione di database su desktop, SQLite, senza codice e tramite browser, evidenziandone punti di forza, limiti e casi d'uso più adatti.

Ingresso vs. Uscita: qual è la differenza nelle reti?

Ingresso vs. Uscita: qual è la differenza nelle reti?

Comprendere come i termini "ingress" e "egress" descrivono il traffico in entrata e in uscita, perché la direzione dipende dal confine della rete e come monitorare la larghezza di banda e individuare i trasferimenti di dati rischiosi.

6 migliori server Syslog gratuiti da provare per la registrazione centralizzata dei log

6 migliori server Syslog gratuiti da provare per la registrazione centralizzata dei log

Confronta sei server e collettori syslog gratuiti per Windows e Linux, inclusi strumenti con interfaccia grafica, opzioni open source, funzionalità di ricerca, avvisi e trasporto sicuro.

Cos'è IIS? Il server Web Windows di Microsoft e le sue alternative.

Cos'è IIS? Il server Web Windows di Microsoft e le sue alternative.

Scopri cosa fa Microsoft IIS, come funzionano la sua pipeline di richieste e i pool di applicazioni e quando Apache, NGINX o Caddy potrebbero essere più adatti alle tue esigenze di server web.

Risolvere l'elevato utilizzo della CPU in Jitsi Meet sui browser client.

Risolvere l'elevato utilizzo della CPU in Jitsi Meet sui browser client.

Diagnostica i picchi di utilizzo della CPU del browser Jitsi Meet e riduci il carico del client controllando i riquadri video, gli effetti della fotocamera, la grafica del browser e le impostazioni dell'host.

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Monitora lo stato di salute, il carico della conferenza e il traffico di Jitsi Videobridge con il suo endpoint Prometheus integrato, quindi esplora e visualizza i dati in Grafana.

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Configura un dominio personalizzato per Jitsi Meet Docker con DNS, URL pubblico, HTTPS, Let's Encrypt, porte del firewall, impostazioni NAT e verifica end-to-end.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.