Eroare în baza de date Nextcloud după o actualizare: Ce trebuie verificat mai întâi

Dacă Nextcloud începe să afișeze o excepție de tip „Eroare bază de date” după o actualizare, verificați eroarea bazei de date subiacente nextcloud.logînainte de a modifica orice tabel. Restaurați mai întâi conectivitatea bazei de date; dacă actualizarea s-a oprit la jumătatea timpului, finalizați-o cu occ upgradeși utilizați comenzile de reparare documentate abia atunci când jurnalele o justifică.

Identificați defecțiunea reală

Mesajul din browser este un simptom, nu un diagnostic. Este posibil ca Nextcloud să nu poată accesa MySQL/MariaDB sau PostgreSQL, contul bazei de date să nu se mai autentifice sau codul și schema aplicației să fie în stadii diferite de actualizare. Referința oficială de depanare a Nextcloud recomandă potrivirea ID-ului cererii eșuate cu jurnalul serverului.

  1. Înregistrați ora, eroarea completă a browserului și orice ID de solicitare afișat. Nu publicați intrări private în jurnal fără a elimina secretele și informațiile personale.
  2. Găsiți directorul de date configurat în config/config.php. Fișierul jurnal implicit este data/nextcloud.log, dar implementările personalizate se pot înregistra în altă parte.
  3. Pe o instalare Linux convențională, verificați intrările recente și apoi jurnalele serviciilor bazei de date. Înlocuiți calea Nextcloud reală cu aceasta:
sudo tail -n 100 /var/www/nextcloud/data/nextcloud.log
sudo journalctl -u mariadb --since '30 minutes ago'

A doua comandă se aplică doar unei gazde care rulează MariaDB sub systemd; utilizați serviciul PostgreSQL sau jurnalele containerului pentru alte implementări. Căutați codul excepției SQLSTATEși prima cauză legată de baza de date, în loc să vă bazați pe ultima linie de urmărire a stivei.

Indiciu de jurnalPrima verificare utilă
SQLSTATE[HY000] [2002]Procesul bazei de date, numele gazdei, portul, calea socketului sau accesul la fișierul SQLite; driverul determină interpretarea.
SQLSTATE[HY000] [1040]Epuizarea conexiunii MySQL/MariaDB și sesiuni active.
MySQL server has gone awayReporniri ale bazelor de date, deconectări, presiune asupra resurselor și jurnale de server.
Autentificare sau acces refuzatCont de bază de date, parolă, acces la rețea și permisiuni.
Lipsește un tabel, o relație sau o coloanăDacă actualizarea bazei de date s-a finalizat și dacă codul instalat corespunde schemei sale.

Primele trei exemple sunt prezentate în secțiunea de erori comune documentate de Nextcloud. Un mesaj de tip tabel lipsă nu reprezintă permisiunea de a crea manual tabelul: identificați mai întâi eroarea precisă de migrare.

Protejați instanța înainte de a aplica o corecție

Înainte de a reîncerca migrările, păstrați o copie de rezervă a bazei de date restaurabilă împreună cu configurația și datele Nextcloud. Procedura oficială de backup include și aplicații și teme personalizate, atunci când există. Confirmați că copia de rezervă aparține aceluiași moment în timp; o copie de rezervă doar de cod nu poate recupera o bază de date parțial modificată.

  • Întrerupeți sincronizarea și sarcinile de fundal în timpul unei ferestre de recuperare, acolo unde este posibil, în special atunci când sunt implicate scrieri sau actualizări ale bazei de date.
  • Păstrați o evidență a versiunilor vechi și noi de Nextcloud, a motorului/versiunii bazei de date, a versiunii PHP și a metodei de actualizare.
  • Nu ștergeți tabelele bazei de date, nu importați o schemă goală, nu rulați SQL aleatoriu din forumuri și nu restaurați în mod repetat o singură componentă a unei copii de rezervă din mai multe părți.

Comenzile de mai jos presupun instalarea obișnuită Debian/Ubuntu la /var/www/nextcloud, cu www-dataca cont de server web. Executați occca utilizator HTTP corespunzător; instalările package, Docker, Snap, AIO și gestionate au căi și metode de execuție diferite. Referința comenzii occ explică aceste cerințe.

Restaurarea conectivității bazei de date înainte de migrare

Verificați serviciul bazei de date și setările conexiunii Nextcloud

Dacă jurnalele arată un refuz al conexiunii, un socket inaccesibil sau un server indisponibil, verificați mai întâi dacă serviciul bazei de date existent rulează. Acestea sunt verificări alternative la nivel de gazdă, nu o listă de executat fără discernământ:

sudo systemctl status mariadb
sudo systemctl status postgresql

Pentru un server de baze de date separat, verificați și DNS, regulile firewall, portul selectat și accesibilitatea rețelei de la gazda sau containerul aplicației Nextcloud. Verificați config/config.php, dbtype, dbhostși dbname. dbuserReferința parametrilor de configurare explică numele de gazdă, porturile și sintaxa socketului Unix. Nu inserați niciodată dbpasswordîn tichete publice sau comenzi shell care le expun în istoric.

Dacă o parolă a bazei de date a fost rotită sau acreditările au fost modificate în timpul implementării, corectați această nepotrivire utilizând fluxul de lucru pentru gestionarea secretelor. Dacă serverul raportează prea multe conexiuni, inspectați conexiunile active și cauza acumulării de conexiuni înainte de a lua în considerare modificările de capacitate. O comandă index nu va remedia o întrerupere a conexiunii.

Verificați compatibilitatea runtime după actualizare

O actualizare simultană a PHP sau a serverului de baze de date poate întrerupe o instalare funcțională anterioară. Comparați versiunea țintă Nextcloud cu cerințele oficiale de sistem și notele de lansare, în loc să presupuneți că fiecare versiune de driver și server instalată în prezent este în continuare acceptată. Conform documentației Nextcloud 35 verificate, PHP 8.3–8.5 este acceptat; versiunile de baze de date acceptate sunt documentate separat acolo. Versiunile anterioare au limite diferite.

De asemenea, confirmați că driverul bazei de date PHP necesar motorului selectat este activat atât în ​​mediul PHP de linie de comandă, cât și în cel web. Nu faceți downgrade orbește serverului bazei de date după o migrare a schemei: restaurați doar dintr-un plan de backup compatibil și consistent.

Finalizează sau reparează actualizarea Nextcloud întreruptă

Odată ce baza de date este accesibilă și o copie de rezervă este securizată, treceți la directorul de instalare Nextcloud și verificați starea acestuia:

cd /var/www/nextcloud
sudo -E -u www-data php occ status

Dacă Nextcloud raportează că o actualizare este în așteptare sau incompletă, urmați calea de actualizare acceptată pentru versiunile sursă și țintă instalate. Pentru o instalare manuală convențională, executați:

sudo -E -u www-data php occ upgrade

Nu întrerupeți comanda și nu rulați procese de actualizare simultane. Citiți rezultatul acesteia: o migrare reușită este diferită de o excepție de conexiune la baza de date. Documentația manuală de actualizare Nextcloud recomandă în mod explicit occ upgradecând procesul bazat pe web se blochează și maintenance:repairdacă este necesară repararea căii de actualizare:

sudo -E -u www-data php occ maintenance:repair

Se utilizează maintenance:repairdupă analizarea erorii; nu înlocuiește remedierea acreditărilor greșite, a unei baze de date oprite sau a unui runtime cu adevărat incompatibil. Dacă occ upgradeo migrare SQL specifică eșuează, salvați excepția exactă și căutați o remediere specifică versiunii sau restaurați copia de rezervă completă corespondentă, în loc să experimentați cu DDL manual.

Gestionați avertismentele de schemă numai după o actualizare reușită

Unele migrări sunt amânate intenționat. Pe o instanță funcțională, prezentarea generală a administratorului poate solicita coloane, indici sau chei primare opționale. Aceste comenzi oferă o previzualizare a rulării preliminare atunci când sunt acceptate de versiunea respectivă:

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

Executați comanda corespunzătoare fără [data] --dry-rundoar dacă problema înregistrată sau verificarea administrativă o solicită și modificarea propusă a fost revizuită. Aceste operațiuni de întreținere pot dura timp pe bazele de date mari. Nextcloud 35 documentează suplimentar db:schema:check; nu presupuneți că există pe ramuri mai vechi. Consultați referința comenzilor bazei de date pentru comportamentul specific versiunii.

Verificați recuperarea și redeschideți accesul

  1. Repetați sudo -E -u www-data php occ status. Confirmați că versiunea instalată corespunde cu versiunea dorită, că nu este necesară nicio actualizare și că nu se produce nicio nouă excepție SQL fatală.
  2. Dacă modul de întreținere este încă activat și actualizarea s-a finalizat cu succes , dezactivați-l cu sudo -E -u www-data php occ maintenance:mode --off.
  3. Deschideți interfața grafică WebGUI, conectați-vă, listați fișierele și efectuați o mică încărcare și descărcare autorizată. Urmăriți nextcloud.logîn timpul acestor verificări dacă există excepții noi la baza de date.
  4. Reluați joburile programate și sincronizarea clienților, apoi verificați setările de administrare pentru orice avertismente rămase pentru baza de date.

Dacă se returnează aceeași excepție în baza de date, opriți migrările repetate și colectați ID-ul cererii, textul SQLSTATE, jurnalul bazei de date-server, perechea de versiuni și occrezultatul eșuat. Aceste dovezi determină dacă problema rămasă este conectivitatea, software-ul incompatibil sau o migrare specifică eșuată. O singură autentificare reușită nu este o dovadă că fiecare sarcină în fundal și interogare în baza de date funcționează.

Lasă un comentariu

Mutați datele Nextcloud pe o unitate externă fără a afecta spațiul de stocare

Mutați datele Nextcloud pe o unitate externă fără a afecta spațiul de stocare

Mută ​​în siguranță un director de date Linux Nextcloud pe o unitate externă folosind o montare UUID persistentă, modul de întreținere, o copie verificată și linkul simbolic al căii originale.

Eroare în baza de date Nextcloud după o actualizare: Ce trebuie verificat mai întâi

Restaurați accesul la Nextcloud după o actualizare prin diagnosticarea erorilor SQL, verificarea conectivității bazei de date și finalizarea în siguranță a migrărilor întrerupte.

Resetarea unei parole de administrator Nextcloud pierdute cu OCC

Folosește comanda OCC din Nextcloud pentru a reseta o parolă de administrator din shell-ul serverului, cu îndrumări pentru nume de utilizator, permisiuni și furnizori de autentificare externi.

Adăugați antetul HSTS la endpoint-ul HTTPS care deservește Nextcloud

Ștergeți avertismentul HSTS al Nextcloud setând antetul la Apache, NGINX sau proxy-ul TLS, apoi verificați răspunsul public HTTPS în siguranță.

Depanarea instalărilor aplicației Nextcloud care raportează lipsa internetului

Depanarea instalărilor aplicației Nextcloud care raportează lipsa internetului

Urmăriți erorile de instalare din App Store până la problemele DNS, HTTPS, proxy, TLS sau de configurare chiar de pe serverul Nextcloud.

Controlează vârfurile de CPU din previzualizarea Nextcloud cu o coadă programată

Mută ​​miniaturile într-un program controlat în fundal, decupează dimensiunile de previzualizare neutilizate și verifică coada fără a suprasolicita serverul Nextcloud.

Obțineți sincronizarea desktop Nextcloud trecând de la „Procesarea fișierelor”

Găsiți fișierul, regula de excludere, problema de conexiune sau starea bazei de date client care blochează sincronizarea Nextcloud, apoi verificați încărcările și descărcările în siguranță.

Ștergeți avertismentul Nextcloud OPcache prin ajustarea limitei din dreapta

Găsiți limita PHP OPcache care declanșează avertismentul Nextcloud, actualizați configurația web PHP corectă, reporniți în siguranță și verificați rezultatul.

Conectarea Nextcloud la CODE Docker: Configurare și compromisuri

Conectarea Nextcloud la CODE Docker: Configurare și compromisuri

Compară CODUL încorporat și cel bazat pe Docker, apoi conectează Collabora Online la Nextcloud printr-un proxy invers HTTPS securizat.

Construiți un cluster Nextcloud rezilient cu Galera

Planificați o implementare fiabilă Nextcloud HA cu stocare partajată, blocare Redis, rutare MariaDB cu funcție de cvorum și verificări practice de failover.