Ich bin auf Kubuntu 12.04 und nachdem ich mysql über apt-get (mysql ver: 5.5.35) installiert habe, versuche ich, den mysql-Dienst zu starten, aber ich habe folgende Fehlermeldung
Sudo Service MySQL Start
start: Job konnte nicht gestartet werden
Also habe ich dieses Problem gegoogelt und besagt, dass ich zum /var/log/mysql/error.log gehen muss
Aber meine error.log-Datei ist leer :(
Dann habe ich die Berechtigungen geprüft.
drwxr-s --- 2 mysql adm 4096 7. April 11:21 mysql
-rw-r ----- 1 mysql adm 0 Apr 7 11:21 error.log
Also weiß ich nicht was ich tun soll ... Warum dieser Fehler? Warum ist die Fehlerdatei leer?
Erstellen Sie zunächst eine Sicherungskopie Ihres/var/lib/mysql/-Verzeichnisses, um sicherzugehen.
Sudo mkdir /home/<your username>/mysql/
cd /var/lib/mysql/
Sudo cp * /home/<your username>/mysql/ -R
Löschen Sie als Nächstes MySQL (dies entfernt php5-mysql und phpmyadmin sowie eine Reihe anderer Bibliotheken). Bereiten Sie sich darauf vor, einige Elemente danach erneut zu installieren.
Sudo apt-get purge mysql-server-5.1 mysql-common
Entfernen Sie den Ordner/etc/mysql/und dessen Inhalt
Sudo rm /etc/mysql/ -R
Überprüfen Sie als Nächstes, ob sich Ihre alten Datenbankdateien noch in/var/lib/mysql/befinden. Wenn dies nicht der Fall ist, kopieren Sie sie zurück in den Ordner und wählen Sie dann root: root
(nur ausführen, wenn die Dateien nicht mehr vorhanden sind)
Sudo mkdir /var/lib/mysql/
Sudo chown root:root /var/lib/mysql/ -R
cd ~/mysql/
Sudo cp * /var/lib/mysql/ -R
Installieren Sie als Nächstes den Mysql-Server
Sudo apt-get install mysql-server
Installieren Sie schließlich alle fehlenden Pakete wie phpmyadmin und php5-mysql erneut.
Mein Problem war knapp. Digital Ocean bietet großartige Anweisungen zum Hinzufügen von Swap-Speicher für Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
Dies löste das Problem und ermöglichte mir einen Neustart des MySQL, das sonst nicht starten würde.
Die Neuinstallation funktioniert, da der gesamte Wert auf den Standardwert zurückgesetzt wird. Es ist besser, herauszufinden, was die wahren Schuldigen sind (Fehler beim Editieren von my.cnf, z. B. falscher/veralteter Parametervorschlag während der MySQL-Abstimmung).
Hier ist die MySQL-Diagnose, wenn Sie vermuten, dass ein bestimmter Wert in my.cnf falsch ist: Führen Sie Mysqld aus, um die Ergebnisse anzuzeigen.
Sudo -u mysql mysqld
Beheben Sie anschließend alle my.cnf-Schlüsselfehler, die vom Bildschirm bis zum erfolgreichen Start von mysqld angezeigt werden.
Starten Sie es dann erneut mit
Sudo service mysql restart
In den meisten Fällen reicht es aus, das Paket mysql-server zu löschen und erneut zu installieren.
Lauf,
Sudo apt-get purge mysql-server-5.1 mysql-common
gefolgt von
Sudo apt-get install mysql-server
In meinem Fall ist es einfach, weil die Festplatte voll ist .. Löschen Sie einfach etwas Speicherplatz und starten Sie neu, und alles ist in Ordnung.
Diese Zeile hat das Problem in meinem Fall gelöst,
Sudo apt clean
Überprüfen Sie die Dateiberechtigungen, falls diese bearbeitet wurden
Scheitern:
$ Sudo chmod 776 /etc/mysql/my.cnf
$ Sudo service mysql restart
mysql stop/waiting
start: Job failed to start
OK:
$ Sudo chmod 774 /etc/mysql/my.cnf
$ Sudo service mysql restart
stop: Unknown instance:
mysql start/running, process 9564
In meinem Fall mache ich:
Sudo nano /etc/mysql/my.cnf
bind
Namen und IPsDie gegebene Lösung erfordert ausreichend freie Festplatte, das eigentliche Problem war der Festplattenmangel. Wenn Sie keinen alternativen Server oder freien Speicherplatz haben, benötigen Sie eine andere Alternative.
Dieser Fehler ist bei meinem Produktionsserver (Linode VPS) aufgetreten, als ich einen Massen-Download in MySQL durchführte. Es ist keine richtige Lösung, aber SEHR SCHNELLE FIX, die wir in der Produktion oft brauchen, um die Dinge schnell nach oben zu bringen.
Ich hatte das gleiche Problem. Aber ich stelle fest, dass meine HD voll ist.
$ Sudo cat /var/log/upstart/mysql.log
/proc/self/fd/9: ERROR: The partition with /var/lib/mysql is too full!
Also renne ich
$ df -h
Und ich habe die Nachricht bekommen
/dev/xvda1 7.8G 7.4G 0 100% /
Dann fand ich heraus, welcher Ordner voll war, indem ich den folgenden Befehl auf dem Terminal ausführte
$ cd /var/www
$ for i in *; do echo $i; find $i |wc -l; done
Dies gibt mir die Anzahl der Dateien in jedem Ordner in/var/www. Ich habe mich in den Ordner mit den meisten Dateien eingeloggt, einige Sicherungsdateien gelöscht und weiterhin unbrauchbare Dateien und Cache-Dateien gelöscht.
dann starte ich $ Sudo /etc/init.d/mysql start und es funktioniert wieder
Untersuchen Sie zuerst Ihr Fehlerprotokoll (der Pfad ist für mich in meinem /etc/mysql/my.cnf
Datei):
tail /var/log/mysql/error.log
Mein Problem stellte sich als eine neue IP-Adresse heraus, die nach einer Netzwerkrouter-Neukonfiguration zugewiesen wurde. Ich musste daher die bind-address
Variable.
In meinem Fall: