Das ist also ein sehr kompliziertes Problem.
Denn nach dem, was Sie (sehr detailliert) beschrieben haben, gibt es immer noch viele mögliche Ursachen für dieses Problem.
FRAGE: Hier sind einige Fragen für Sie zusammengefasst (aus meiner Erfahrung):
- Läuft Ihr
MySQL not running
ist beim ersten Start passiert (xampp start / xampp startmysql)? - Haben Sie nach der Installation von xampp unter Linux die MySQL-Konfiguration angepasst (Standard etc/my.cnf)?
- FALLS ANGEPASST Haben Sie Ihr Datenbankverzeichnis an einen anderen Speicherort angepasst (Standard /opt/lampp/var/mysql)?
- FALLS NICHT ANGEPASST Wie Sie bereits erwähnt haben, haben Sie Zugriff auf die mysql-Befehlszeile, haben Sie versucht, Ihre Datenbank mit SQL zu synchronisieren, oder war die Datenbank nicht einmal zugänglich (was bedeutet, dass der mysql-Server mit dem Namen mysqld nicht ordnungsgemäß gestartet wurde)?
- Haben Sie persönlich eine MySQL-Datenbank initialisiert/installiert (standardmäßig bin/mysql_install_db)?Ok, diese obigen Fragen sollten eine grundlegende Idee zur Fehlerbehebung liefern.
LÖSUNG:
1. Fehlerprotokollproblem
Dies sollte also das einfachste Problem sein, und es könnte uns helfen, die Fehlerursachen besser zu identifizieren.
Prüfen
a) In der MySQL-Konfiguration (my.cnf) wie lautet Ihr laufender Benutzer? dies sollte ein Parameter unter [mysqld] user=... (Standard mysql) sein, wir gehen davon aus, dass unsere Konfiguration auf mysql
eingestellt ist
b) Haben Sie ein Konto zum Ausführen des Benutzer-Try-Terminal-Befehls id -u mysql
, wenn es eine ID-Nummer zurückgibt, dann existiert das Konto, andernfalls sollte es Ihnen sagen no such user
. Sie benötigen diesen Benutzer, um den MySQL-Server auszuführen und das Fehlerprotokoll zu schreiben (wenn Sie sich den zweiten Teil Ihres Terminaleintrags ansehen, sollte Ihr Konto existieren)
c) Überprüfen Sie den Speicherort des Fehlerprotokolls Ihrer MySQL-Konfiguration (my.cnf), es sollte unter [mysqld] als Parameter log-error=... sein, wenn dies nicht geschrieben ist, fügen Sie es hinzu (muss unter [mysqld] sein).
d) Überprüfen Sie jedes Verzeichnis Ihres Protokolls auf den vollständigen Pfad (z. B. /var/log/mysql/error.log)
- /var sollte
read
haben undexecute
Berechtigung für mysql-Benutzer (mindestens ******r-x) Berechtigung zum Erstellen von Dateien (Ausführen) übergeben - /var/log sollte
read
haben undexecute
Berechtigung für mysql-Benutzer (mindestens ******r-x) Berechtigung zum Erstellen von Dateien (Ausführen) übergeben - /var/log/mysql sollte
read
haben ,write
undexecute
Berechtigung für mysql-Benutzer (das ist ******rwx) Berechtigung zum Erstellen und Schreiben von Dateien
Damit Ihre error.log-Datei hier erstellt werden kann, versuchen Sie, wenn sie immer noch nicht funktioniert, sie manuell mit Besitzer als mysql, Gruppe als mysql und Autorität von 660 zu erstellen.
2. Ausführungsstatus des MySQL-Servers
Es gibt mehrere Ansätze, dies zu überprüfen
a) Verwenden Sie mysql.server (standardmäßig bin/mysql.server), um mysql.server status
auszuführen Befehl. Wenn Ihr MySQL-Server läuft, sollte er SUCCESS anzeigen! MariaDB läuft.
b) Verwenden Sie top
Befehl, um zu überprüfen, ob der Dienst ausgeführt wird, oder verwenden Sie top | grep "mysqld"
. mysqld
und mysqld_safe
sollte drin sein.
c) Melden Sie sich an der mysql-Befehlszeile an, genau wie Sie es in Terminal-Datensatz 4 getan haben (dieser Teil funktioniert) und führen Sie den Befehl SHOW DATABASES;
aus das sollte auch funktionieren.
3. Angepasster Datenbankspeicherort führt dazu, dass Xampp mysql nicht ausgeführt wird Dies ist ein viel tieferes Problem, da ich bestätigt habe, dass der MySQL-Server ordnungsgemäß läuft.
Das habe ich
[[email protected] ~]# /opt/lampp/xampp status
Version: XAMPP for Linux 7.4.1
Apache is running.
MySQL is not running.
ProFTPD is running.
[[email protected] ~]# /opt/lampp/bin/mysql.server status
SUCCESS! MariaDB running (xxxx)
Dies zeigt also, dass xampp den Dienststatus falsch abruft (wie ein anderer Beitrag MySQL-Datenbank startet auf Terminal, aber nicht auf XAMPP )
Ich konnte im Detail nachvollziehen, wie xampp funktioniert, aber in /opt/lampp/xampp
script-Datei habe ich /opt/lampp/share/xampp/status
gefunden und /opt/lampp/share/statusraw
Gehen Sie weiter darauf ein (sowohl /opt/lampp/share/xampp/status
und /opt/lampp/share/statusraw
Datei),
/opt/lampp/var/mysql/` /bin/hostname`.pid mysqld
Da meine Datenbank an ein lokalisiertes Verzeichnis angepasst wurde, bedeutet dies, dass sich die PID-Datei nicht in /opt/lampp/var/mysql
befindet , und dieser Status wird immer falsch zurückgegeben.
Das Ändern dieser in meine eigene Datenbank-PID-Position löste das Problem.