Behebung des Fehlers „Verbindung zur Datenbank fehlgeschlagen“ in ownCloud 10 mit MySQL

Der schnellste Weg, den ownCloud 10-Fehler „Verbindung zur Datenbank fehlgeschlagen“ zu beheben, besteht darin, dasselbe MySQL-Konto, denselben Datenbanknamen und denselben Host direkt auf dem ownCloud-Server zu testen. Schlägt die Anmeldung fehl, überprüfen Sie zunächst die MySQL-Verfügbarkeit, den Netzwerkzugriff, die Anmeldeinformationen oder die Berechtigungen. Ist die Anmeldung erfolgreich, prüfen Sie die ownCloud-Konfiguration config/config.php, die PHP- pdo_mysqlErweiterung und ob PHP die vorgesehene Socket- oder TCP-Verbindung verwendet.

Diese Anleitung beschreibt eine bestehende ownCloud Server 10-Installation mit MySQL oder MariaDB unter Linux. Dienstnamen und Paketbefehle variieren je nach Betriebssystem und Installationstyp. Sichern Sie die Konfiguration und die Datenbank, bevor Sie Änderungen an den Produktionseinstellungen vornehmen. Geben Sie das Datenbankpasswort niemals in einem Problembericht weiter oder fügen Sie es in ein öffentliches Shell-Protokoll ein.

Was sagt Ihnen die Fehlermeldung?

Die Meldung ist ein Symptom, keine Diagnose. Lesen Sie das ownCloud-Protokoll und das Webserver- oder PHP-Protokoll zum Zeitpunkt des Fehlers. Die zugrunde liegende Ausnahme kann auf einen fehlenden Treiber, eine abgelehnte Verbindung, einen fehlgeschlagenen Login oder eine unbekannte Datenbank hinweisen. Die ownCloud-Datenbankanleitung für Linux erfordert die PHP- pdo_mysqlErweiterung und weist darauf hin, dass die Socket-Einstellung bei lokalem MySQL relevant ist. Es wird empfohlen, den Zugriff mit dem MySQL-Befehlszeilenclient zu testen.

Nachricht oder HinweisWahrscheinlicher Bereich, den es zu überprüfen gilt
could not find driveroder ein PDO-TreiberfehlerDie Web-PHP-Laufzeitumgebung ist nicht pdo_mysqlaktiviert.
SQLSTATE[HY000] [2002]oder „Verbindung kann nicht hergestellt werden“MySQL ist gestoppt, der Host oder Port ist falsch, eine Firewall blockiert TCP oder der Socket-Pfad ist falsch.
Access denied for userPasswort, Account-Host oder MySQL-Authentifizierungseinstellungen stimmen nicht überein.
Unknown databaseDer konfigurierte Datenbankname ist falsch geschrieben, fehlt oder ist für das Konto nicht sichtbar.

Die genauen Fehlercodes können je nach PHP-, MySQL-, MariaDB- und Betriebssystemversion variieren. Betrachten Sie sie als Hinweise und überprüfen Sie die Ursache anhand der folgenden Schritte. Die Dokumentation zu Zugriffsverweigerungen von MySQL weist darauf hin, dass häufige Ursachen für Probleme mit Konto und Host sind.

Kann der ownCloud-Host MySQL erreichen?

Ermitteln Sie, ob MySQL auf dem ownCloud-Server, einem anderen Rechner oder in einem Container läuft. Unter Linux überprüfen Sie den Dienst. Gängige Unit-Namen sind `mysql` mysqlund `mysql` mariadb; verwenden Sie den auf Ihrem Server installierten Dienst.

sudo systemctl status mysql
sudo systemctl status mariadb

Wenn das System inaktiv ist, überprüfen Sie das Journal oder das Datenbankfehlerprotokoll, bevor Sie es neu starten. Ein Konfigurationsfehler, ein voller Speicherplatz, eine fehlgeschlagene Datenbankwiederherstellung oder ein Portkonflikt können den Start verhindern.

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

Ersetzen Sie den Dienstnamen gegebenenfalls. Ein laufender Dienst beweist nicht, dass ownCloud sich authentifizieren kann; fahren Sie mit dem Kontotest fort.

Bei einer Remote-Datenbank testen Sie DNS und den konfigurierten TCP-Port vom ownCloud-Host aus. MySQL lauscht üblicherweise auf Port 3306, obwohl in manchen Installationen ein anderer Port verwendet werden kann.

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

Ein fehlgeschlagener Check deutet auf ein Problem mit DNS, Routing, Firewall oder der Datenbank-Listener-Konfiguration hin. Erlauben Sie Verbindungen vom ownCloud-Server nach Möglichkeit nur über ein privates Netzwerk. Vermeiden Sie es, MySQL als Abkürzung über das öffentliche Internet zugänglich zu machen.

Funktioniert das Datenbankkonto vom ownCloud-Host aus?

Führen Sie den MySQL-Client auf dem Anwendungsserver mit demselben Datenbanknamen, Benutzer und Zielhost aus, den ownCloud verwenden soll. Die -pOption fragt das Passwort privat ab; dadurch wird vermieden, dass das Passwort im Befehl selbst eingegeben wird.

mysql -u oc_app -p -h localhost owncloud

Bei einer Remote-Datenbank ersetzen Sie localhost<Hostname> durch den Hostnamen. Wenn die Anmeldung funktioniert, führen Sie eine harmlose Überprüfung durch:

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

Dies bestätigt die grundlegende Authentifizierung und den Zugriff auf die ausgewählte Datenbank. Im Fehlerfall lesen Sie die genaue Fehlermeldung und den von MySQL gemeldeten Benutzernamen/Host. MySQL verwendet Benutzernamen und Host gemeinsam zur Zuordnung eines Kontos. Beachten Sie außerdem, dass localhostunter Linux üblicherweise ein Unix-Socket verwendet wird, während 127.0.0.1TCP erzwungen wird. Testen Sie dieselbe Verbindungsmethode, die Ihre ownCloud-Konfiguration verwendet.

mysql -u oc_app -p -h 127.0.0.1 owncloud

Sind die ownCloud-Datenbankeinstellungen korrekt?

Überprüfen Sie die aktive Datei config/config.phpim ownCloud-Installationsverzeichnis. Die ownCloud-Konfigurationsreferenz listet Datenbanktyp, Name, Benutzer und Passwort auf; die Datenbankanleitung zeigt außerdem Host und Tabellenpräfix an. Eine typische MySQL-Konfiguration sieht folgendermaßen aus:

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

Prüfen Sie die Datei auf Rechtschreibfehler, versehentliche Leerzeichen, ein veraltetes Passwort, einen Datenbanknamen mit abweichender Groß- und Kleinschreibung oder einen Host, der auf den falschen Server verweist. Behalten Sie den Rest der Datei, einschließlich des Instanzgeheimnisses und des Datenverzeichnisses, bei. Ersetzen Sie nicht die gesamte Konfiguration durch dieses Beispiel.

Überprüfen Sie nach der Bearbeitung, ob die Datei gültiges PHP ist, indem Sie die PHP-Binärdatei Ihrer Installation verwenden:

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

Ihr Installationspfad kann abweichen. Beschränken Sie den Zugriff auf config.php; es enthält Datenbankzugangsdaten und andere sensible Daten.

Ist der MySQL-Treiber von PHP für die Webanwendung aktiviert?

Die Datenbankanleitung für ownCloud 10 erfordert Folgendes pdo_mysql: Überprüfen Sie die PHP-Version und die geladenen Module:

php -v
php -m | grep -i pdo_mysql

Falls das Modul fehlt, installieren Sie das entsprechende MySQL-PDO-Paket für Ihre PHP-Version und starten Sie anschließend den Webserver bzw. den PHP-FPM-Pool neu. Die Paketnamen unterscheiden sich je nach Ubuntu, Debian, SUSE, Red Hat und Container-Images. Ein für die PHP-Befehlszeile aktiviertes Modul ist möglicherweise nicht für Apache oder PHP-FPM aktiviert. Überprüfen Sie daher auch die PHP-Konfiguration der Web-Laufzeitumgebung. Vermeiden Sie es, eine öffentliche Diagnoseseite bereitzustellen, die Informationen zur PHP-Konfiguration preisgibt.

Könnte die Socket- oder Host-Einstellung falsch sein?

Unter Linux kann ein MySQL-Client einen Unix-Socket verwenden localhost, während die 127.0.0.1Datenbank selbst TCP nutzt. Befindet sich MySQL auf demselben Rechner, prüfen Sie, ob die PHP- mysql.default_socketKonfiguration auf die Socket-Datei verweist, die der Datenbankserver tatsächlich erstellt. Vergleichen Sie die Socket- und Port-Einstellungen des Datenbankservers mit den PHP-Einstellungen und dem Host-Wert von ownCloud.

Wenn MySQL remote ist, localhosthandelt es sich um die ownCloud-Maschine und nicht um den Datenbankserver. Legen Sie stattdessen den erreichbaren Datenbank-Hostnamen fest und stellen Sie sicher, dass MySQL auf der vorgesehenen Schnittstelle lauscht. Eine Firewall oder eine lokale Zugriffssperre bind-addresskann den Remotezugriff verhindern, selbst wenn lokale Datenbankbefehle funktionieren. Beschränken Sie den Zugriff auf die private Adresse des Anwendungsservers.

Stimmen das MySQL-Konto und die Berechtigungen mit dem Client-Host überein?

MySQL-Konten bestehen aus einem Benutzernamen und einer Host-Komponente. Daher handelt es sich bei 'oc_app'@'localhost'und 'oc_app'@'10.0.0.25'um unterschiedliche Kontoeinträge. Verwenden Sie eine administrative Verbindung, um die verfügbaren Konten und die Berechtigungen des Kontos zu überprüfen, das übereinstimmen sollte.

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

Falls das Konto fehlt, die Datenbank aber bereits existiert, erstellen Sie ein separates Konto und weisen Sie diesem ausschließlich Zugriff auf die ownCloud-Datenbank zu. Ersetzen Sie die Beispieldatenbank, den Host und das Passwort durch Ihre tatsächlichen Werte.

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

Verwenden Sie für eine Remote-Datenbank den tatsächlichen Hostnamen des Anwendungsservers in der Kontodefinition. Vermeiden Sie die Verwendung eines Platzhalter-Hosts oder globaler Berechtigungen als schnelle Lösung und führen Sie ownCloud nicht als MySQL-Root aus. Falls das Konto bereits existiert, überprüfen Sie die Berechtigungen und setzen Sie das Passwort gezielt zurück, anstatt doppelte Konten zu erstellen. Testen Sie anschließend die Anmeldung vom ownCloud-Server aus.

Wie wird die Reparatur bestätigt?

Nachdem Sie jeweils eine Einstellung geändert haben, überprüfen Sie, ob die MySQL-Befehlszeilenanmeldung vom ownCloud-Host aus funktioniert, die Web-PHP-Laufzeitumgebung vorhanden ist pdo_mysqlund das ownCloud-Protokoll keine Verbindungsfehler mehr protokolliert. Laden Sie die Website neu und führen Sie einfache Lese- und Schreibvorgänge erst durch, nachdem die Instanz wieder verfügbar ist.

Wenn die Anmeldung über die Kommandozeile erfolgreich ist, ownCloud aber weiterhin nicht funktioniert, vergleichen Sie die genaue Host-Konfiguration, das Konto, den Datenbanknamen und die vom Webprozess verwendete PHP-Laufzeitumgebung mit dem funktionierenden Test. Überprüfen Sie die Webserver- oder PHP-FPM-Protokolle zum Zeitpunkt der Anfrage. Bei einem bereits installierten Server reparieren Sie die bestehende Konfiguration sorgfältig; löschen Sie die Datenbank nicht und führen Sie die Installation nicht erneut durch, um die Fehlerbehebung zu beschleunigen.

Weitere Informationen finden Sie im Konfigurations- und Fehlerbehebungsleitfaden für ownCloud Server 10.16 , in der Konfigurationsreferenz für ownCloud 10.15 sowie in den offiziellen MySQL-Leitfäden zur Fehlerbehebung bei Verbindungsproblemen und Zugriffsverweigerungen . Dienstnamen, Paketbefehle und genaue Einstellungen hängen von Ihrem Betriebssystem und Ihrer Bereitstellung ab.

Einen Kommentar hinterlassen

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Vergleichen Sie 10 Ping-Sweep-Tools für die schnelle LAN-Erkennung, plattformübergreifende Scans und IP-Adressverwaltung. Erfahren Sie, was ein Sweep liefern kann – und was nicht.

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Vergleichen Sie sechs Netzwerkmanagement-Tools für die Leistungsüberwachung, einschließlich SNMP-Abdeckung, Mapping, Warnmeldungen, Bereitstellungsmodelle und Kosten-Nutzen-Verhältnisse.

Die besten WLAN-Analysatoren für Windows, iOS und Android

Die besten WLAN-Analysatoren für Windows, iOS und Android

Vergleichen Sie die besten Wi-Fi-Analyseprogramme für Windows, iPhone und Android, einschließlich Tools für Kanalüberlastung, Signalabdeckung, Heatmaps und Netzwerk-Fehlerbehebung.

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

Erfahren Sie, was QoS in der Netzwerktechnik bedeutet, wie DSCP-Markierungen und Datenverkehrswarteschlangen Sprach-, Video- und Geschäftsanwendungen priorisieren und was QoS nicht beheben kann.

Beste SFTP-Server-Software für sichere Dateiübertragungen

Beste SFTP-Server-Software für sichere Dateiübertragungen

Vergleichen Sie zuverlässige SFTP-Server-Software für Windows und Linux, darunter OpenSSH, Bitvise, SolarWinds und SFTPGo. Finden Sie die passende Lösung für Ihre Sicherheits- und Dateitransferanforderungen.

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Vergleichen Sie 10 Tools zum Scannen und Analysieren drahtloser Netzwerke für Windows, iOS und Android mit klaren Hinweisen zu Wi-Fi-Kanälen, Abdeckungskarten, LAN-Prüfungen und Plattformbeschränkungen.

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Erstellen Sie eine praktische Netzwerküberwachung mit klarer Geräteabdeckung, nützlichen Leistungskennzahlen, umsetzbaren Warnmeldungen und einem Vergleich von SolarWinds NPM, PRTG und OpManager.

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Vergleichen Sie sieben IP-Adressverwaltungstools für Subnetzerkennung, DNS- und DHCP-Koordination, Netzwerkinventarisierung und Open-Source-IPAM.

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Vergleichen Sie Netzwerk-Scanner-Tools für die schnelle Geräteerkennung, plattformübergreifende IP-Scans und Enterprise IPAM mit Hinweisen zur Auswahl der passenden Option für Ihr Netzwerk.

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Verwenden Sie die Option --traceroute von Nmap, um Hops einem autorisierten Host zuzuordnen, die Hop- und RTT-Ausgabe zu verstehen und fehlende Antworten zu beheben, ohne übermäßig zu scannen.