Nach der Installation von MySQL über Brew wird der Fehler angezeigt: Der Server wurde beendet, ohne die PID-Datei zu aktualisieren

87

Ok, ich habe überall gesucht und viel Zeit damit verbracht, verschiedene Optionen zu installieren, zu deinstallieren und auszuprobieren, aber ohne Erfolg.

Ich arbeite unter Mac OS X Lion (10.7.3) und versuche, Python, MySQL, einzurichten.

Ich habe Python und MySQL erfolgreich über HomeBrew installiert. Python funktioniert großartig.

Nach der MySQL-Installation habe ich die ersten beiden Schritte ausgeführt - nicht gesetzt und die mysql_install_dbBefehle.

Wenn ich jetzt versuche, mysql "mysql.server start" zu starten, wird der folgende Fehler angezeigt

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar ist mein Benutzername auf meinem Computer.
Brajeshwar
quelle

Antworten:

77

EDIT 18.09.2012: Stellen Sie, wie von Kane hervorgehoben , sicher, dass die mysqlDatenbank ordnungsgemäß eingerichtet ist, bevor Sie etwas anderes tun. Siehe „ PID-Fehler beim Start von mysql.server? " Für mehr Information.

Die ursprüngliche Antwort wurde aus Gründen der Geschichte aufbewahrt: Es handelt sich höchstwahrscheinlich um ein Berechtigungsproblem. Überprüfen Sie /usr/local/var/mysql/*.err. Meins sagte:

120314 16:30:14  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended

Ich musste auch folgendes tun:

sudo chown _mysql /usr/local/var/mysql/*
janmoesen
quelle
64
Ich habe das Problem gelöst:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani
1
Ich erhalte den gleichen Fehler, aber ich habe keinen Ordner / usr / local / var / mysql :( Ich verwende auch Homebrew.
Nathan Bashaw
2
Siehe die Kommentare brew info mysqloder diese Frage für die richtige Lösung
Kane
4
sudo chmod ugo + w / tmp war meine lösung.
Ben Racicot
1
meins wurde mit sudo chown -R {mein_benutzername} gelöst: admin / usr / local / var / mysql55 /
Packet Tracer
102

Ich habe festgestellt, dass es sich um ein Berechtigungsproblem mit dem mysqlOrdner handelt.

chmod -R 777 /usr/local/var/mysql/ 

löste es für mich.

mikoop
quelle
16
Es ist nicht nötig, diese 777
JamesHalsall
2
Ich habe auch lange gesucht und das hat es für mich behoben.
gebissen
5
Bitte beachten Sie, dass ich nicht empfehle, in einer Produktionsumgebung 777 festzulegen. Dies muss nur bei einer lokalen Installation erfolgen. Ich würde es auch mindestens auf 755 zurückschalten.
Mikoop
1
Wenn beim Start von MySQL ein Fehler auftritt Warnung: Die weltweit beschreibbare Konfigurationsdatei '/var/lib/mysql/none-dev/my.cnf' wird ignoriert. Dann möchten Sie wahrscheinlich chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann
1
meins wurde mit sudo chown -R {mein_benutzername} gelöst: admin / usr / local / var / mysql55 /
Packet Tracer
64

Am Ende habe ich MySQL komplett neu installiert und es hat endlich geklappt.

WARNUNG Dadurch werden alle Ihre Datenbanken entfernt. Speichern Sie daher zuerst die Speicherauszüge.

brew remove mysql
brew cleanup
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /usr/local/var/mysql

brew install mysql
mysqld --initialize --explicit_defaults_for_timestamp
mysql.server start # no sudo!
artnikpro
quelle
3
Ich habe versucht, die Berechtigungen auf jede mögliche Weise zu ändern, ohne Erfolg.
Befolgte
Dies ist die EINZIGE Lösung, die ich gefunden habe. Dies sollte Nummer eins sein
Dan
Danke, das ist das einzige, was für mich funktioniert hat. Obwohl ich nicht rennen musstemysqld --initialize --explicit_defaults_for_timestamp
Deep
1
Starten von MySQL ... FEHLER! Der Server wurde beendet, ohne die PID-Datei zu aktualisieren (<Pfad> -.lightspeed.irvnca.sbcglobal.net.pid). Diesen Fehler bekommen
Unnikrishnan
1
Nur Homebrew-Ausgabe
McGrady
31

Ich hatte dieses Problem auf Mac 10.10.5 Yosemite

Was ich getan habe, um das zu lösen

cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start

Rakesh James
quelle
Prost! Dieser Weg ist der einfachste und hat mir den Tag gerettet!
iplus26
Perfekt, du hast meinen Tag gerettet;)
Emy Stats
Seufzer. Nachdem Sie 2 Stunden lang jede Lösung im Internet ausprobiert haben, wurde sie endlich behoben! Ein guter alter Neustart! :)
SexyBeast
18

November 2014: Wenn dieser Fehler unter MySQL 5.6.x unter Mac OS X Mavericks oder Yosemite auftritt und MySQL lokal mit PHP verwendet werden soll (/tmp/mysql.sock erwartet PHP PDO, die Sockendatei zu finden), Hier ist, was es für mich behoben hat:

1) Kommentieren Sie die Standardzeilen der Homebrew-Konfigurationsdatei aus und bearbeiten Sie sie wie folgt

$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf
...
basedir = /usr/local/Cellar/mysql/5.6.21
datadir = /usr/local/var/mysql
port = 3306
server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT>
socket = /tmp/mysql.sock
pid-file = /usr/local/var/mysql/[BOXNAME].local.pid
....

BOXNAME ist das, was Sie in Ihren Systemeinstellungen -> Netzwerk als eindeutige ID für Ihren Computer im Netzwerk haben.

2) Legen Sie die Berechtigungen für alle Dateien im MySQL-Datenverzeichnis fest. Diese waren alle im Besitz von [my_username]. MySQL ist sehr wählerisch und weigert sich, die PID-Datei zu erstellen, es sei denn, sie (der Benutzer _mysql) besitzt das Verzeichnis.

$ sudo chown -R _mysql:mysql /usr/local/var/mysql

3) Starten Sie MySQL mit dem Bash-Helfer / Wrapper-Skript:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Hoffentlich hilft das. Wenn dies für Sie nicht funktioniert, versuchen Sie, die Binärdatei mysqld_safe manuell im Verzeichnis Cellar / mysql / VERSION_ / bin / auszuführen, und überprüfen Sie die Einstellungen (falls sie ausgeführt werden).

sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &

Wenn das läuft, können Sie

ps aux | grep mysql 

und so etwas sehen

[username]  6881   0.0  2.7  3081392 454836   ??  S     8:52AM   0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid

Ich bin mir nicht sicher, warum das bei mir funktioniert hat, aber es zeigt Ihnen, woher ich die Konfigurationsdateioptionen für my.cnf habe. Sie können auch die Befehlszeilenoptionen verwenden, um zu versuchen, Fehler zu beheben, wenn Sie mysqld manuell starten.

Wenn Sie den MySQL-Server mit mysqld_safe ausführen, müssen Sie dies möglicherweise tun, um ihn herunterzufahren, bevor Sie den Bash-Helfer mysql.server ausprobieren. Widerstehen Sie dem Drang, -9 [PID] zu töten, da Sie Ihre Daten beschädigen können.

mysqladmin -uroot shutdown

Viel Glück!

Phpguru
quelle
danke - meins wurde mit sudo chown -R {mein_benutzername} gelöst: admin / usr / local / var / mysql55 /
Packet Tracer
18

Ich hatte das gleiche Problem unter OS X El Capitan. Hier ist die Terminalbefehlssequenz, die es für mich behoben hat.

Löschen Sie Fehlerdateien (Sie müssen den Pfad abhängig von Ihrem Setup ändern)

sudo rm /usr/local/mysql/data/*.err

Suchen Sie die Informationen für den noch laufenden MySQL-Prozess und beenden Sie ihn:

ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9

Starten Sie nun MySQL neu:

/usr/local/mysql/support-files/mysql.server start
Kreis B.
quelle
10

Das hat bei mir funktioniert:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start
Kresimir Plese
quelle
Dies löste mein Problem in MAC OS 10.11.3 (nach dem Wechsel des Modus auf 777 des
Ratha
Dies bedeutet Read Write Execute oder die vollen Rechte aller Benutzer für diesen Ordner und (-R) aller Dateien und Ordner unter diesem Ordner. Eine ausführliche Erklärung finden Sie unter folgendem Link: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese
4

Das hat bei mir am 10.12.2 funktioniert:

$ rm /usr/local/var/mysql/*.err

dann

$ brew services restart mysql
Suryanto Rachmat
quelle
3

Wenn ich mich richtig erinnere, handelt es sich um ein Berechtigungsproblem. Versuchen Sie, die PID-Datei oder den Ordner, in dem sich die Datei befindet, zu berühren und zu ändern.

LonnyLot
quelle
Nee. Ich habe sogar versucht, chmod 777 zu sehen, ob das das Problem löst, aber nichts. Gleicher FEHLER.
Brajeshwar
Haben Sie versucht, das MySQL-Verzeichnis zu ändern, die PID-Datei zu löschen und MySQL neu zu starten?
LonnyLot
3

Mein Problem war, dass ich den Server einmal als sudo gestartet und dann versucht habe, als lokaler Benutzer neu zu starten.

Hier konnte mysql nicht in die '.err'-Datei schreiben, die root gehört. Ich musste diese Datei entfernen und den Server neu starten:

sudo rm /usr/local/var/mysql/*.err
mysql.server start
Grimmo
quelle
2

Ich habe ein ähnliches Problem mit MySQL auf einem Mac (Mac Os X konnte MySQL Server nicht starten. Grund: 255 und auch "FEHLER! Der Server wurde beendet, ohne die PID-Datei zu aktualisieren"). Nach einem langen Versuch und Irrtum habe ich schließlich Folgendes getan, um die Dateiberechtigungen wiederherzustellen:

Starten Sie die Disk Utilities.app.
Wählen Sie mein Laufwerk im linken Bereich aus und
klicken Sie auf die Schaltfläche "Festplattenberechtigungen reparieren".

Dies hat den Trick getan für mich. In der Hoffnung, dass dies jemand anderem helfen kann.

Claude COULOMBE
quelle
1

Bei mir hat es geklappt mit:

unset TMPDIR
mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
caarlos0
quelle
1

Was für mich funktioniert hat war:

  1. Gehen Sie zu Ihrem MySQL-Installationsverzeichnis
  2. sudo chmod -R 777 data
  3. Dann gehen Sie ein Verzeichnis zurück
  4. cd support-files/
  5. sudo ./mysql.server start

Danach wurde der Server gestartet.

Das Problem bei dieser Methode ist jedoch, dass ich dies jedes Mal wiederholen muss, wenn ich die MySQL jetzt starten möchte. Ich weiß nicht, warum es sich plötzlich so verhält.

Pritam Banerjee
quelle
1

Suchen Sie die Datei usr / local / var / mysql / your_computer_name.local.err und verstehen Sie die weiteren Informationen zu Fehlern

Speicherort: /usr/local/var/mysql/your_computer_name.local.err

Es ist wahrscheinlich ein Problem mit Berechtigungen

  1. Finde heraus, ob MySQL läuft und töte es

ps -ef | grep mysql

töte -9 PID

Dabei ist PID der Wert der zweiten Spalte. 2. Überprüfen Sie den Besitz von MySQL

ls -laF / usr / local / var / mysql /

if it is owned by root, change it mysql or your user name

sudo chown -R mysql / usr / local / var / mysql /

Amitesh Bharti
quelle
1

Versuchen Sie dies (OSX)

Schritt 1: ps -aux | grep mysql

Dann töten Sie die 4-stellige PID-Nummer

Schritt 2: kill 1965

Schritt 3: mysql.server start

Wenn Sie Schwierigkeiten haben, diese PID-Nummern zu finden, versuchen Sie dies unten

Wieder Schritt 1: ps -aux | grep mysql

Wieder Schritt 2: killall

Wieder Schritt 3: mysql.server start

EsterlingAccime Youtuber
quelle
1

Bitte überprüfen Sie das Protokoll, Sie erhalten detailliertere Informationen.

Verwenden Sie den folgenden Befehl, um das Fehlerprotokoll zu beenden

tail -100 /usr/local/var/mysql/<user_name>.local.err

Für mich fehlt eines der Verzeichnisse, sobald es erstellt wurde, hat der Server gestartet.

Mani
quelle
1

Der Schlüssel zum Mitnehmen ist das Überprüfen der .err-Datei, die sich unter Mac OS X standardmäßig befindet /usr/local/var/mysql.

Dieses Protokoll ergab, dass ich die folgenden Dateien löschen musste:

ibdata1
ib_logfile0
ib_logfile1

Das Ausführen von MySQL mit hat mysql.startdanach erfolgreich funktioniert. Beachten Sie, dass das Löschen dieser Dateien wahrscheinlich zu Datenverlust führt.

Janac Meena
quelle
0
sudo chmod -R 777 /usr/local/var/mysql/

funktioniert bei mir.

Anshul
quelle
0

Ich hatte das gleiche Problem:

Aber die Situation war, jedes Mal, wenn ich versuche einzutreten:

/usr/local/mysql/support-files/mysql.server start

localhost.pidStattdessen wird eine Datei mit dem Namen erstellt iMax0.local.pid, die im Fehler angegeben wurde:

ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).

Die Lösung, die für mich funktioniert, war das Kopieren localhost.pidund Umbenennen in iMax0.local.pid.

0yeoj
quelle
0

Meine Lösung unter OSX El Capitan war:

sudo chmod ugo+w /tmp

Es war plötzlich kaputt.

Der Fehler war:

ERROR! The server quit without updating PID file

und das Protokoll zeigte:

Can't start server : Bind on unix socket: Permission denied

Es kann auch hilfreich sein zu beachten, dass es unter OSX keine gibt my.cnf standardmäßig Datei und standardmäßig nicht benötigt wird, was ich nicht wusste. Viel Glück!

Gasgeber
quelle
0
$ sudo mysql.server restart

Für mich geht das.

Lucas Ocon
quelle
0

Ich hatte das ähnliche Problem. Aber die folgenden Befehle haben mich gerettet.

cd /usr/local/Cellar
sudo chown _mysql mysql
Shakti Singh
quelle
0

Dies ist ein Dateiberechtigungsproblem. Überprüfen Sie die Festplattenberechtigungen und reparieren Sie sie.

Osx => Cmd + Space => Festplatten-Dienstprogramm => Festplattenberechtigungen überprüfen.

Überprüfen Sie, ob der Vorgang abgeschlossen ist, nachdem Sie die Festplattenberechtigungen repariert haben. Der Startbefehl mysql.server wird erfolgreich ausgeführt.

Wallance
quelle
Das hat bei mir funktioniert. Bitte versuchen Sie dies, bevor Sie etwas anderes tun.
Kamlesh
0

Keine der Antworten hat bei mir funktioniert. Ich habe sudo mysql.server startes jedoch einfach gemacht und es hat gut funktioniert.

Außerdem wurde für mich KEIN Berechtigungsproblem in der * .err-Datei angezeigt.

master_dodo
quelle
0

Ich hatte dieses Problem unter Linux, aber die Ursache ist für jede MySQL-Installation relevant. In meinem Fall stürzte der Server ab, bevor der Start abgeschlossen und die PID-Datei aktualisiert wurde. Die Fehlermeldungen wurden beim direkten Start von mysqld statt über "service mysql start" angezeigt.

In meinem Fall war die Ursache, dass die Partition, auf der sich die Protokolldateien befanden, voll war. Durch das Entfernen von Protokolldateien konnte MySQL erneut gestartet werden. Um dieses Problem zu testen, gehen Sie zum Speicherort Ihrer MySQL-Aktivitätsprotokolle und führen Sie dies aus df ..

Edward Schaefer
quelle
0

Wenn Sie Ihre MySQL-Installation auf 8.x aktualisiert haben, überprüfen Sie, ob Ihre vorherige Version für ein Upgrade unterstützt wird .

Wenn nicht, wird MySQL nicht funktionieren! Deinstallieren Sie Ihre MySQL zusammen mit allen Konfigurationsdateien in /usr/local/var/mysql(entfernen Sie den gesamten Ordner). Installieren Sie mysql neu.

HINWEIS: Eine Neuinstallation kann zu Datenverlust führen.

Ayush Goel
quelle
0

Alle oben genannten Lösungen funktionieren bei mir nicht. aber sie geben mir einige Hinweise, um diesen Fehler zu beheben.

mysql.server start ---- error Der Server wurde beendet, ohne die PID-Datei zu aktualisieren

Ich habe [email protected] mit Homebrew auf meinem MacBook Mojave installiert

brauen installieren [email protected]

Das MySQL-Fehlerprotokoll in /usr/local/var/mysql/IU.lan.err enthält eine Zeile: Berechtigungstabellen können nicht geöffnet und gesperrt werden: Die Tabelle 'mysql.user' ist nicht vorhanden

Nachdem ich viele Beiträge in der Goole-Suchmaschine ausprobiert hatte, wandte ich mich an baidu https://blog.csdn.net/xhool/article/details/52398042, inspiriert von diesem Beitrag. Ich fand die Lösung:

rm / usr / local / var / mysql / *

mysqld --initialize

Ein zufälliges Passwort für den Root-Benutzer wird in Bash angezeigt. Aber der Befehl mysql -uroot -p [theRandomPassword] kann nicht funktionieren. Deshalb muss ich das Passwort zurücksetzen. Erstellen Sie eine Init-Datei mit Inhalten wie diesem

SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('MyNewPass');

Platzieren Sie es in einem leicht zu findenden Verzeichnis, z. B. Desktop

mysqld --init-file = [YourInitFile] &

Viele Protokolle werden auf Ihrem Bildschirm gedruckt.

mysql -uroot -pMyNewPass

Viel Spaß mit Ihrer High-Version-MySQL!

何德福
quelle
0

Ist mir passiert, weil ich tatsächlich von MariaDB zu MySQL gewechselt bin. Der Wechsel zurück zu MariaDB löste dieses Problem.

Ich vermute, die vorhandene Datenbank war nicht kompatibel.

theredled
quelle
Dies war auch mein Problem, ich wechselte von MariaDB zu MySQL. Ein Wechsel zurück zu MariaDB war jedoch keine akzeptable Lösung. Ich habe das neue MySQL entfernt und brew uninstall [email protected]dann den alten MySQL-Ordner gelöscht, der von MariaDB erstellt wurde sudo rm -rf /usr/local/var/mysql(dies wird Ihre Datenbanken offensichtlich löschen). Dann brew install [email protected]und mysql.server startund es funktioniert.
Antriver
0

Dies wurde mit sudo chown -R _mysql:_mysql /usr/local/var/mysql Dank an Matteo Alessani gelöst

Vallie
quelle
-1

Dieser Fehler wird möglicherweise tatsächlich angezeigt, da MySQL bereits gestartet ist. Versuchen Sie, den aktuellen Status anzuzeigen, indem Sie:

mysql.server status
Jahmic
quelle