Remediați eroarea „Conectarea la baza de date nu a reușit” în ownCloud 10 cu MySQL

Cea mai rapidă metodă de a izola o eroare ownCloud 10 de tipul „Conectare la baza de date eșuată” este să testați același cont MySQL, același nume de bază de date și aceeași gazdă de pe serverul ownCloud. Dacă această conectare eșuează, remediați mai întâi disponibilitatea MySQL, accesul la rețea, acreditările sau granturile. Dacă reușește, verificați extensia ownCloud config/config.php, extensia PHP pdo_mysqlși dacă PHP utilizează socketul sau conexiunea TCP dorită.

Acest ghid prezintă o instalare existentă a ownCloud Server 10 folosind MySQL sau MariaDB pe Linux. Numele serviciilor și comenzile pachetelor variază în funcție de sistemul de operare și de tipul de instalare. Faceți o copie de rezervă a configurației și a bazei de date înainte de a edita setările de producție. Nu partajați niciodată parola bazei de date într-o problemă și nu o lipiți într-o transcriere publică a shell-ului.

Ce îți spune eroarea?

Mesajul este un simptom, nu un diagnostic. Citiți jurnalul ownCloud și jurnalul serverului web sau PHP în momentul erorii. Excepția subiacentă poate identifica un driver lipsă, o conexiune refuzată, o autentificare respinsă sau o bază de date necunoscută. Ghidul bazelor de date Linux al ownCloud necesită pdo_mysqlextensia PHP și menționează că setarea socketului este importantă atunci când MySQL este local. Recomandă testarea accesului cu clientul MySQL din linia de comandă.

Mesaj sau indiciuZona probabilă de verificat
could not find driversau o eroare a driverului PDORuntime-ul web PHP nu are pdo_mysqlactivat.
SQLSTATE[HY000] [2002]sau „Nu se poate conecta”MySQL este oprit, gazda sau portul este greșit, un firewall blochează TCP sau calea socketului este greșită.
Access denied for userParola, gazda contului sau setările de autentificare MySQL nu corespund.
Unknown databaseNumele configurat al bazei de date este scris greșit, lipsește sau nu este vizibil pentru cont.

Codurile de eroare exacte pot varia în funcție de PHP, MySQL, MariaDB și versiunile sistemului de operare. Tratați-le ca indicii și confirmați cauza cu verificările de mai jos. Documentația MySQL pentru acces refuzat menționează că potrivirea contului și a gazdei sunt cauze frecvente.

Poate gazda ownCloud să acceseze MySQL?

Află dacă MySQL rulează pe serverul ownCloud, pe o altă mașină sau pe un container. Pe Linux, verifică serviciul. Numele comune ale unităților sunt mysqlși mariadb; folosește-l pe cel instalat pe serverul tău:

sudo systemctl status mysql
sudo systemctl status mariadb

Dacă este inactiv, verificați jurnalul sau jurnalul de erori al bazei de date înainte de a-l reporni. O eroare de configurare, un disc plin, o recuperare eșuată a bazei de date sau un conflict de porturi pot împiedica pornirea:

sudo journalctl -u mariadb --since "30 minutes ago"
sudo systemctl start mariadb

Înlocuiți numele serviciului după cum este necesar. Un serviciu care rulează nu dovedește că ownCloud se poate autentifica; continuați cu testarea contului.

Pentru o bază de date la distanță, testați DNS-ul și portul TCP configurat de la gazda ownCloud. MySQL ascultă de obicei pe portul 3306, deși implementările pot utiliza un alt port:

getent hosts db.example.net
nc -vz db.example.net 3306

O verificare eșuată indică o configurație DNS, rutare, un firewall sau un listener de baze de date. Permiteți conexiuni doar de la serverul ownCloud printr-o rețea privată, acolo unde este posibil. Nu expuneți MySQL la internetul public ca o scurtătură.

Funcționează contul de bază de date de pe gazda ownCloud?

Rulați clientul MySQL pe serverul de aplicații cu același nume de bază de date, utilizator și gazdă destinație pe care ar trebui să le utilizeze ownCloud. Opțiunea -psolicită parola în mod privat; evită introducerea parolei în comandă:

mysql -u oc_app -p -h localhost owncloud

Pentru o bază de date la distanță, înlocuiți localhostcu numele gazdei sale. Dacă autentificarea funcționează, rulați o verificare inofensivă:

SELECT DATABASE(), CURRENT_USER();
SHOW TABLES;
EXIT;

Aceasta confirmă autentificarea de bază și accesul la baza de date selectată. Dacă eșuează, citiți eroarea exactă și rapoartele MySQL privind numele de utilizator/gazda. MySQL tratează numele de utilizator și gazda împreună atunci când se potrivește cu un cont. De asemenea, rețineți că localhostpe Linux se folosește de obicei un socket Unix, în timp ce 127.0.0.1forțează TCP. Testați aceeași metodă de conectare utilizată de configurația dvs. ownCloud:

mysql -u oc_app -p -h 127.0.0.1 owncloud

Sunt setările bazei de date ownCloud corecte?

Inspectați fișierul activ config/config.phpdin directorul de instalare ownCloud. Referința de configurare ownCloud listează tipul bazei de date, numele, utilizatorul și parola; ghidul bazei de date arată, de asemenea, prefixul gazdei și al tabelului. O configurație MySQL tipică seamănă cu:

'dbtype' => 'mysql',
'dbname' => 'owncloud',
'dbuser' => 'oc_app',
'dbpassword' => 'REDACTED',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',

Verificați dacă există greșeli de ortografie, spații albe accidentale, o parolă veche, un nume de bază de date cu majuscule diferite sau o gazdă care indică serverul greșit. Păstrați restul fișierului, inclusiv secretul instanței și directorul de date. Nu înlocuiți întreaga configurație cu acest exemplu.

După o editare, confirmați că fișierul este PHP valid folosind binarul PHP pentru instalarea dvs.:

php -l /var/www/owncloud/config/config.php

Calea de instalare poate fi diferită. Restricționați accesul la config.php; conține acreditările bazei de date și alte valori sensibile.

Este driverul MySQL din PHP activat pentru aplicația web?

Ghidul bazei de date ownCloud 10 necesită pdo_mysql. Verificați versiunea PHP și modulele încărcate:

php -v
php -m | grep -i pdo_mysql

Dacă modulul lipsește, instalați pachetul MySQL PDO corespunzător pentru versiunea dvs. PHP, apoi reporniți sau reîncărcați serverul web relevant sau pool-ul PHP-FPM. Numele pachetelor diferă între Ubuntu, Debian, SUSE, Red Hat și imaginile containerelor. Un modul activat pentru PHP din linia de comandă poate să nu fie activat pentru Apache sau PHP-FPM, așadar verificați și configurația PHP a runtime-ului web. Evitați să lăsați o pagină de diagnosticare publică care dezvăluie informații despre configurația PHP.

Ar putea fi greșită setarea socketului sau a gazdei?

Pe Linux, un client MySQL poate folosi un socket Unix pentru localhost, în timp ce 127.0.0.1folosește TCP. Dacă MySQL se află pe aceeași mașină, verificați dacă PHP mysql.default_socketindică fișierul socket pe care serverul bazei de date îl creează de fapt. Comparați setările socketului și portului serverului bazei de date cu setările PHP și valoarea host a ownCloud.

Dacă MySQL este la distanță, localhosteste mașina ownCloud, nu serverul bazei de date. Setați în schimb numele de gazdă accesibil al bazei de date și asigurați-vă că MySQL ascultă pe interfața dorită. Un firewall sau o opțiune local-only bind-addresspoate împiedica accesul la distanță chiar și atunci când comenzile bazei de date locale funcționează. Restricționați accesul la adresa privată a serverului de aplicații.

Contul și granturile MySQL corespund cu gazda clientului?

Conturile MySQL includ un nume de utilizator și o componentă gazdă. Prin urmare, 'oc_app'@'localhost'și 'oc_app'@'10.0.0.25'sunt intrări de cont diferite. Folosiți o conexiune administrativă pentru a inspecta conturile disponibile și granturile pentru contul care ar trebui să corespundă:

SELECT User, Host FROM mysql.user;
SHOW GRANTS FOR 'oc_app'@'localhost';

Dacă contul lipsește și baza de date există deja, creați un cont dedicat și acordați-i privilegii doar asupra bazei de date ownCloud. Înlocuiți baza de date exemplu, gazda și parola cu valorile dvs. reale:

CREATE USER 'oc_app'@'localhost' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'oc_app'@'localhost';

Pentru o bază de date la distanță, utilizați gazda reală a serverului de aplicații în definiția contului. Evitați o gazdă wildcard sau privilegii globale ca soluție rapidă și nu rulați ownCloud ca root MySQL. Dacă contul există deja, verificați acordarea acestuia și resetați parola în mod deliberat, în loc să creați conturi duplicate. Retestați datele de autentificare de pe serverul ownCloud.

Cum confirmați reparația?

După modificarea unui element pe rând, confirmați că aceeași autentificare în linia de comandă MySQL funcționează de pe gazda ownCloud, că runtime-ul web PHP are pdo_mysql, iar jurnalul ownCloud nu mai înregistrează o excepție de conexiune. Reîncărcați site-ul și efectuați o operațiune de citire și scriere de bază numai după ce instanța este din nou disponibilă.

Dacă autentificarea din linia de comandă reușește, dar ownCloud tot eșuează, comparați formularul exact al gazdei, contul, numele bazei de date și runtime-ul PHP utilizate de procesul web cu testul funcțional. Verificați jurnalele serverului web sau PHP-FPM în momentul solicitării. Pentru un server deja instalat, reparați cu atenție configurația existentă; nu ștergeți baza de date și nu rulați din nou instalarea ca o scurtătură de depanare.

Pentru referințe suplimentare, citiți ghidul de configurare și depanare a bazei de date ownCloud Server 10.16 , referința de configurare ownCloud 10.15 și ghidurile oficiale MySQL pentru depanarea conexiunilor și erorile de acces refuzat . Numele serviciilor, comenzile pachetelor și setările exacte depind de sistemul de operare și de implementare.

Lasă un comentariu

10 cele mai bune instrumente Ping Sweep pentru găsirea dispozitivelor în rețeaua dvs.

10 cele mai bune instrumente Ping Sweep pentru găsirea dispozitivelor în rețeaua dvs.

Comparați 10 instrumente de scanare ping pentru descoperirea rapidă a rețelelor LAN, scanarea multi-platformă și gestionarea adreselor IP. Aflați ce vă poate spune o scanare (sweep).

6 Cele mai bune instrumente de gestionare a rețelei pentru urmărirea performanței

6 Cele mai bune instrumente de gestionare a rețelei pentru urmărirea performanței

Comparați șase instrumente de gestionare a rețelei pentru monitorizarea performanței, inclusiv acoperirea SNMP, maparea, alertele, modelele de implementare și compromisurile de costuri.

QoS în rețele: Ce face calitatea serviciilor și cum funcționează

QoS în rețele: Ce face calitatea serviciilor și cum funcționează

Aflați ce înseamnă QoS în rețele, cum marcajele DSCP și cozile de trafic prioritizează aplicațiile vocale, video și de business și ce nu poate remedia QoS.

Cel mai bun software de server SFTP pentru transferuri securizate de fișiere

Cel mai bun software de server SFTP pentru transferuri securizate de fișiere

Compară software-ul de server SFTP fiabil pentru Windows și Linux, inclusiv OpenSSH, Bitvise, SolarWinds și SFTPGo. Găsește soluția potrivită pentru nevoile tale de securitate și transfer de fișiere.

Cele mai bune practici de monitorizare a rețelei: Ce să urmăriți și ce instrumente să utilizați

Cele mai bune practici de monitorizare a rețelei: Ce să urmăriți și ce instrumente să utilizați

Construiți o monitorizare practică a rețelei cu o acoperire clară a dispozitivelor, indicatori de performanță utili, alerte acționabile și o comparație între SolarWinds NPM, PRTG și OpManager.

Cele mai bune 7 instrumente de gestionare a adreselor IP pentru echipele de rețea

Cele mai bune 7 instrumente de gestionare a adreselor IP pentru echipele de rețea

Comparați șapte instrumente de gestionare a adreselor IP pentru descoperirea subrețelelor, coordonarea DNS și DHCP, inventarul rețelei și IPAM open-source.

10 cele mai bune instrumente de scanare a rețelei pentru descoperirea dispozitivelor și a adreselor IP

10 cele mai bune instrumente de scanare a rețelei pentru descoperirea dispozitivelor și a adreselor IP

Comparați instrumentele de scanare a rețelei pentru descoperirea rapidă a dispozitivelor, scanări IP pe mai multe platforme și IPAM pentru întreprinderi, cu îndrumări privind potrivirea fiecărei opțiuni la rețeaua dvs.

Cum se utilizează Nmap pentru Traceroute și citirea căii de rețea

Cum se utilizează Nmap pentru Traceroute și citirea căii de rețea

Folosește opțiunea --traceroute din Nmap pentru a mapa salturi la o gazdă autorizată, a înțelege ieșirea saltului și a RTT-ului și a depana răspunsurile lipsă fără a suprascana.

6 Cele mai bune instrumente de monitorizare a serverelor Windows pentru o disponibilitate și o performanță mai bune

6 Cele mai bune instrumente de monitorizare a serverelor Windows pentru o disponibilitate și o performanță mai bune

Comparați șase instrumente de monitorizare Windows Server în funcție de colectarea datelor Windows, vizibilitatea aplicațiilor, modelul de implementare și licențierea pentru a găsi instrumentul potrivit.

6 instrumente de monitorizare a rețelei Linux pentru dispozitive, gazde și trafic

6 instrumente de monitorizare a rețelei Linux pentru dispozitive, gazde și trafic

Comparați șase instrumente de monitorizare a rețelei Linux pentru descoperirea dispozitivelor SNMP, grafice de interfață, metrici gazdă, verificări de servicii și fluxuri de trafic.