Ich bin ein Neuling auf MySQL-Basis.
Ich habe gerade das Upgrade von 11.10 auf 12.04 beendet.
Alles schien ohne Probleme zu funktionieren und alle meine Software und Einstellungen funktionieren einwandfrei. Abgesehen von MySQL.
Wenn ich versuche:
sudo start mysql
Ich erhalte eine Fehlermeldung:
start: Job failed to start
Wo kann ich möglicherweise das Problem diagnostizieren? Und (hoffentlich) - wie soll das geklärt werden?
(Ich habe den automatischen Start deaktiviert , wenn dies von Bedeutung ist.)
Update 1:
Beide Ausgänge von:
cat /var/log/mysql.err
cat /var/log/mysql.log
sind leer.
Ausgabe von dmesg | grep mysql
:
[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory
Update 2:
Wie von AWinter unten angegeben, schien MySQL nach dem Upgrade automatisch verschwunden zu sein und musste neu installiert werden.
sudo rm /etc/mysql/ -R
- es war in meinem Fall einfach nicht vorhanden. Wie auch immer - zum Glück war es nur eine lokale Installation, um Wordpress zu testen. Ichapt-get update
geklappt , aber ich hätte es wahrscheinlich vorher tun sollen , weil es dovecot und php5-mysql entfernt hat. Ich konnte diese erst nach dem Update neu installieren. Sobald ich fertig war, funktionierte alles wieder gut.-bash: cd: /var/lib/mysql/: Permission denied
und benutzesudo -i
funktioniert nicht einmal.quelle
Ich hatte das gleiche Problem und für mich war es, dass die InnoDB-Protokolldateien eine andere Größe hatten als von MySQL erwartet und während des Upgrades unbemerkt fehlgeschlagen sind.
Ich hatte eine benutzerdefinierte Konfigurationsdatei, die beim Upgrade auf 12.04 gelöscht wurde, und die die Protokolldateigrößen auf etwas anderes als die Standardkonfiguration festlegte.
Sie müssen die folgenden Dateien entfernen: / var / lib / mysql / ib_logfile *
Nachdem die Dateien verschwunden sind, kann mysql jetzt neue Protokolldateien in der Standardgröße erstellen.
quelle
Die meisten Fehler treten auf, wenn der Server im ausführlichen Nicht-Daemon-Modus gestartet und die Ausgabe überwacht wird:
quelle
Ich hatte das gleiche Problem, aber keine der obigen Antworten hat mir geholfen. Als letzte Hoffnung habe ich versucht, Speicherplatz freizugeben. Ich entferne einfach unnötige Protokolldateien aus / var / log, wodurch 2,5 GB Speicherplatz frei werden. Dann wurde MySQL normal gestartet.
quelle
Dies passiert manchmal und obwohl es ein paar verschiedene Probleme gibt, die dazu führen könnten, dass MySQL nicht startet, schreibe ich hier einige der häufigsten, die mir bekannt sind:
HINWEIS - Da ich die häufigsten Probleme erläutere, gehe ich davon aus, dass Sie bereits versucht haben, den mysql-Dienst zu entfernen und zu installieren oder einfach neu zu installieren:
Installieren -
sudo apt-get install mysql-server mysql-client
Entfernen - Löschen
sudo apt-get remove mysql-server mysql-client
(Dateien entfernen + Konfiguration) -
sudo apt-get purge mysql-server mysql-client
Neu installieren -
sudo apt-get install --reinstall mysql-server mysql-client
my.cnf
Die Datei befindet sich nicht im Standardverzeichnis. Es sollte sich (standardmäßig) entweder in/etc/my.cnf
oder befinden/etc/mysql/my.cnf
.Nicht genügend Speicherplatz auf der Festplatte, auf der sich die MySQL-Datendateien befinden. Wenn die Datenbanken zu groß werden und 100% der Festplatte beanspruchen, schlägt der Dienst fehl.
Überprüfen Sie nach dem Upgrade, ob sich die
my.cnf
Datei am richtigen Ort befindet. Abhängig davon, wie Sie ein Upgrade durchgeführt haben oder von welcher Version Sie ein Upgrade durchgeführt haben, kann dies in/etc/my.cnf
oder/etc/mysql/my.cnf
wie oben erwähnt sein. Denken Sie auch daran, dass die Datei auch benannt werden kannmysql.conf
und nicht nurmy.cnf
. Dies geschieht in Fällen, in denen Sie die Binärdatei von mysql.com heruntergeladen haben .Wenn Sie a
dmesg
ausführen, um zu sehen, was der mysql-Dienst auslöst, hilft eine Fehlermeldung, da der Ladefehler angezeigt wird. Es könnte auch sagen, warum dies geschieht. Wenn Siedmesg
alleine im Terminal tippen, zeigt es Ihnen die Welt. Was wir wollen, ist die Information über MySQL. Machen Sie also so etwas:dmesg | grep mysql
Dies wirft Ihnen alle Zeilen aus, die MySQL enthalten.Überprüfen Sie, ob die Datei
my.cnf
odermysql.conf
korrekt ist. In 12.04 ist MySQL Version 5.5, in 11.10 Version 5.1. Möglicherweise hat es einige Änderungen in der conf-Datei (habe das nicht überprüft) und es mag albern klingen, aber es kann Ihnen sicher Probleme bereiten.Fehler im Zusammenhang mit Socket-Problemen sind normalerweise der Fehler der
my.cnf
odermysql.conf
-Datei, die auf die falsche Stelle verweist. Der Fehler wird normalerweise wie folgt angezeigt:Die andere Ursache für dieses Problem liegt darin, dass die
mysql
Datei/etc/init.d
auf den falschen Ordner verweist, da möglicherweise ein älteres Skript als das für die eigentliche MySQL- Datei auf dem System erforderliche verwendet wird die Konfigurationsdatei, etc ..). Bearbeiten Sie also einfach eine dieser beiden Dateien undsudo service mysql restart
prüfen Sie, ob sie auf eine andere Stelle verweisen. Führen Sie dann einfach eine aus , um zu überprüfen, ob sie funktioniert.Um die fehlerspezifischen Ausgaben von mysql genauer zu betrachten, gehen Sie wie folgt vor:
cat /var/log/mysql.err
- Zeigt Ihnen die MySQL-Fehler. Ich würde es so machen,cat /var/log/mysql.err | less
wenn Sie zufällig sehen, dass zu viele Informationen vorbeifliegen, da diesless
Ihnen hilft, durch die Ausgabe von zu scrollencat
.Gleiches gilt für
cat /var/log/mysql.log
Wenn Sie den Fehler dort sehen, können Sie ihn möglicherweise in die Frage oder als Kommentar einfügen, um ihn schneller zu beantworten.Wenn Sie unter Verbindungsproblemen leiden und der Dienst ausgeführt wird, überprüfen Sie, ob die Firewall des Servers Verbindungen über den 3306-Port zulässt (eingehende Verbindungen). Überprüfen Sie anschließend, ob der Router (falls zutreffend) den Port 3306 nicht blockiert hat. Führen Sie im Grunde genommen einen Netzwerktest durch, um festzustellen, woher das Problem mit dem MySQL zugewiesenen Port stammt.
Wenn alles in Ordnung ist, testen Sie, ob der MySQL-Dienst ausgeführt wird
service mysql status
Als letztes. Wenn Sie gerade mysql ausführen, sich aber nicht anmelden können, versuchen Sie Folgendes:
Stoppen Sie den MySQL Server:
sudo /etc/init.d/mysql stop
odersudo service mysql stop
Starten Sie den
mysqld
Dienst manuell mit manueller Konfigurationsudo mysqld --skip-grant-tables &
(Denken Sie daran, das & hinzuzufügen, andernfalls müssen Sie ein anderes Terminal öffnen. Das & schickt den Prozess in den Hintergrund und Sie können mit demselben Terminal abbrechen.)
Melden Sie sich bei der MySQL-Datenbank als ROOT an
mysql -u root mysql
Geben Sie Folgendes ein und ersetzen Sie das MyPASSWORD durch Ihr neues Passwort
UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
Dies sollte ausreichen, um sich erneut als root bei Ihrem MySQL-Dienst anzumelden. Ich hoffe es hilft.
quelle
/etc/mysql/my.cnf
in meinem Fall. Ist das der richtige Ort?dmesg
gibt mir eine Menge Output, die ich nicht verstehen kann: / Ich hatte tatsächlich 5.1 installiert - hat das irgendwelche Konsequenzen?Ich hatte das gleiche Problem nach dem Upgrade auf Ubuntu Server 12.04 LTS
war genug, um es zu beheben, obwohl es über eine alte Datenbank von Spotweb beschwert. Ich habe das behoben, indem ich spotweb entfernt habe:
und Neukonfiguration von MySQL:
quelle
Ich werde dies hinzufügen, falls jemand mit ähnlichen Problemen konfrontiert ist. Ich habe alle Deinstallationen und Neuinstallationen ohne Erfolg versucht. Der Schlüssel zum Finden der Lösung war, dass Upstart die Fehlerprotokolle in diesem Ordner ablegt
/ var / log / upstart /
für MySQL
/var/log/upstart/mysql.log
Als ich es öffnete, hatte es diese Nachricht
Als ich im Ordner /etc/apparmor.d/tunables/ nachgesehen habe, fehlte mir darin die Home-Datei, also habe ich eine erstellt
gedit /etc/apparmor.d/tunables/home und kopierte den Inhalt von einem anderen Computer mit diesen nicht kommentierten Zeilen
Jemand hat hier ein ähnliches Problem
https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303
Danach konnte ich den Dienst neu starten
quelle
In meinem Fall war es viel einfacher als einige Antworten hier. Ich habe den entsprechenden Fehler auf dem Launchpad gefunden und das Update war wie in Kommentar 9 erwähnt:
quelle
Nach dem Upgrade stellte ich fest, dass mysql-server / mysql-server-5.5 nicht installiert war und auch nicht 5.1. Ich habe my.cnf in my.cnf_old umbenannt und versucht, mysql-serven zu installieren. Während der Installation gab es eine Fehlermeldung, dass das Root-Passwort nicht festgelegt werden konnte. Danach überprüfte ich meine Configs, Apparmor und so weiter. Alles schien in Ordnung zu sein. Mein nächster Versuch war, mysql-server neu zu konfigurieren, aber es wurde beanstandet, dass das Paket nicht vollständig installiert wurde. Also habe ich mich entschlossen, das Paket zu deinstallieren und währenddessen apt-get zu reparieren und jetzt funktioniert es. Ich weiß nicht warum, weil ich nichts geändert habe.
quelle
Ich hatte ähnliche Probleme, wurde aber schnell auf das Problem aufmerksam, an das ich mich erinnerte.
Wenn Sie Änderungen an diesen Einstellungen vornehmen und Ihr System Apparmor verwendet, müssen Sie möglicherweise auch /etc/apparmor.d/usr.sbin.mysqld anpassen. Z.B. Diese Zeilen wurden hinzugefügt (um einen Symlink zur my.cnf zu ermöglichen und um das Lesen der symlinked-Datei zu ermöglichen, vermutlich):
/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}
quelle
In meinem Fall habe ich versucht, MySQL auf einer Neuinstallation von Ubuntu 12.04 zu installieren, aber ich habe nicht verstanden, warum ich beim Festlegen des Passworts für den Benutzer 'root' einen Fehler gemacht habe. Ich habe alle oben genannten Lösungen ausprobiert, aber nichts zu tun.
Dann entschied ich mich, alles zu löschen / entfernen, deinstallierte den MySQL-Server und entfernte alle seine Ordner (/ etc / mysql / und / var / lib / mysql /), schließlich dank einer Art Zufall, dass er während der Installation keinen Fehler verursachte Neuinstallation und ich konnte das Passwort festlegen und die Serverinstanz starten.
quelle
Im Terminal können Sie es erneut installieren und my.cnf ausführen lassen. Sie können Folgendes eingeben:
es könnte so funktionieren.
quelle
Ich habe Probleme, dass das Hinzufügen
performance_schema
unter[mysqld]
in/etc/mysql/my.conf
diesen Fehler verursacht. Entfernte diese Zeile und MySQL konnte neu starten.Bearbeiten: Es stellt sich heraus, dass ein Gig RAM nicht ausreicht, um mysqld mit aktiviertem performance_schema zu starten. Ich bin auf 3 Gigs gestoßen und es hat gut funktioniert.
quelle