Po instalacji MySQL przez Brew pojawia się błąd - Serwer zamknął się bez aktualizacji pliku PID


88

Ok, przeszukałem wszystko i spędziłem sporo czasu na instalowaniu, odinstalowywaniu, wypróbowywaniu różnych opcji, ale bez powodzenia.

Używam Mac OS X Lion (10.7.3) i próbuję skonfigurować Python, MySQL.

Pomyślnie zainstalowałem Python i MySQL przez HomeBrew. Python działa świetnie.

Po instalacji MySQL wykonałem pierwsze 2 kroki - unset i mysql_install_dbpolecenia.

Teraz, kiedy próbuję uruchomić mysql "mysql.server start", pojawia się następujący błąd

ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
  • Brajeshwar to moja nazwa użytkownika na moim komputerze.

Odpowiedzi:


80

EDYCJA 2012/09/18: Jak wskazał Kane , upewnij się, że mysqlbaza danych jest poprawnie skonfigurowana, zanim zrobisz cokolwiek innego. Zobacz „ Błąd PID podczas uruchamiania mysql.server? " po więcej informacji.

Oryginalna odpowiedź zachowana ze względu na historię: najprawdopodobniej jest to problem z uprawnieniami. Sprawdź /usr/local/var/mysql/*.err. Mój powiedział:

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

Musiałem też to zrobić:

sudo chown _mysql /usr/local/var/mysql/*

65
Rozwiązałem problem uruchamiając:sudo chown -R _mysql:_mysql /usr/local/var/mysql
Matteo Alessani

1
Otrzymuję ten sam błąd, ale nie mam folderu / usr / local / var / mysql :( Używam również homebrew.
Nathan Bashaw

2
Zobacz komentarze brew info mysqllub to pytanie dotyczące właściwego rozwiązania
Kane

4
sudo chmod ugo + w / tmp było moim rozwiązaniem.
Ben Racicot

2
mój został rozwiązany za pomocą sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

101

Okazało się, że był to problem z uprawnieniami do mysqlfolderu.

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

rozwiązał to dla mnie.


18
nie ma potrzeby robienia tego 777
JamesHalsall

2
Długo też szukałem i to mi to naprawiło.
ugryziony

6
Uwaga: nie polecam ustawiania czegokolwiek na 777 w środowisku produkcyjnym. Musi to być tylko instalacja lokalna. Jako minimum przestawiłbym go z powrotem na 755.
mikoop

1
Jeśli zobaczysz błąd przy uruchamianiu mysql Ostrzeżenie: plik konfiguracyjny do zapisu przez świat '/var/lib/mysql/none-dev/my.cnf' jest ignorowany Wtedy prawdopodobnie będziesz chciał chmod ow / var / lib / mysql / none- dev / my.cnf
David Mann

1
mój został rozwiązany za pomocą sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

65

Skończyło się na całkowitej ponownej instalacji mysql i w końcu się udało.

OSTRZEŻENIE Spowoduje to usunięcie wszystkich baz danych, więc pamiętaj, aby najpierw zapisać zrzuty.

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!

3
Próbowałem zmieniać uprawnienia w każdy możliwy sposób bez powodzenia. Skończyło się na wykonaniu tych instrukcji i ... sukcesie :)
kartsims

To JEDYNE rozwiązanie jakie znalazłem. To powinno być numer jeden
Dan

Dzięki, to jedyna rzecz, która działała dla mnie. Chociaż nie musiałem biecmysqld --initialize --explicit_defaults_for_timestamp
Deep

1
Uruchamianie MySQL ... BŁĄD! Serwer zakończył pracę bez aktualizacji pliku PID (<ścieżka> -.lightspeed.irvnca.sbcglobal.net.pid). Otrzymuję ten błąd
Unnikrishnan

1
Tylko homebrew problem
McGrady

31

Miałem ten problem na Macu 10.10.5 Yosemite

Co zrobiłem, aby to rozwiązać

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


Twoje zdrowie! Ten sposób jest najprostszy i uratowany!
iplus26

Świetnie, uratowałeś mi dzień;)
Emy Stats

Westchnienie. Po wypróbowaniu każdego rozwiązania w Internecie przez 2 godziny, ostatecznie to naprawiło! Stary, dobry restart! :)
SexyBeast

18

Listopad 2014: Jeśli otrzymujesz ten błąd w MySQL 5.6.x na Mac OS X Mavericks lub Yosemite i chcesz używać MySQL lokalnie z PHP (/tmp/mysql.sock to miejsce, w którym PHP PDO spodziewa się znaleźć plik sock), oto, co naprawiło to dla mnie:

1) Odkomentuj domyślne linie pliku konfiguracyjnego homebrew i edytuj jak poniżej

$ 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 jest tym, co masz w ustawieniach Systemowych -> Sieć, jako unikalny identyfikator komputera w sieci.

2) Ustaw uprawnienia do wszystkich plików w mysql datadir. Wszystkie były własnością [moja_nazwa_użytkownika]. MySQL jest bardzo wybredny w tej kwestii i odmawia utworzenia pliku pid, chyba że to on (użytkownik _mysql) jest właścicielem katalogu.

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

3) Uruchom MySQL za pomocą skryptu pomocniczego / opakowującego bash:

$ sudo mysql.server start
Starting MySQL
. SUCCESS! 

Mam nadzieję, że to pomoże. Jeśli powyższe nie działa, spróbuj ręcznie uruchomić plik binarny mysqld_safe w katalogu Cellar / mysql / VERSION_ / bin / i sprawdź, jakie są ustawienia (jeśli działa)

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

Jeśli to działa, możesz

ps aux | grep mysql 

i zobacz coś takiego

[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

Nie jestem pewien, dlaczego to zadziałało, ale pokazuje, skąd mam opcje pliku konfiguracyjnego my.cnf. Możesz także użyć opcji wiersza poleceń, aby spróbować rozwiązać problem podczas ręcznego uruchamiania mysqld.

Jeśli uruchomisz polecenie zarządzaj uruchomieniem serwera MySQL przy użyciu mysqld_safe, być może będziesz musiał to zrobić, aby go wyłączyć przed wypróbowaniem pomocnika bash mysql.server. Oprzyj się pokusie zabicia -9 [PID], ponieważ możesz uszkodzić swoje dane.

mysqladmin -uroot shutdown

Powodzenia!


dzięki - mój został rozwiązany za pomocą sudo chown -R {my_user_name}: admin / usr / local / var / mysql55 /
Packet Tracer

18

Miałem ten sam problem na OS X El Capitan, oto sekwencja poleceń terminala, która go naprawiła.

Usuń pliki błędów (będziesz musiał zmienić ścieżkę w zależności od konfiguracji)

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

Znajdź informacje o procesie mysql, który nadal działa i zakończ go:

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

Teraz zrestartuj MySQL:

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

10

To zadziałało dla mnie:

sudo chmod -R 777 /usr/local/var/mysql/
sudo /usr/local/mysql/support-files/mysql.server start

To rozwiązało mój problem w systemie MAC OS 10.11.3 (po zmianie trybu na 777 katalogu mysql)
Ratha

Oznacza to Odczyt, zapis, wykonanie lub pełne prawa dla wszystkich użytkowników do tego folderu i (-R) wszystkich plików i folderów w tym folderze. Aby uzyskać szczegółowe wyjaśnienia, zapoznaj się z poniższym linkiem: linux.com/learn/understanding-linux-file-permissions
Kresimir Plese

4

To zadziałało dla mnie 10.12.2:

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

następnie

$ brew services restart mysql

3

Jeśli dobrze pamiętam, jest to kwestia uprawnień. Spróbuj „dotknąć” i „chmod” pliku pid lub folderu, w którym plik jest przechowywany.


Nie. Próbowałem nawet chmod 777, aby sprawdzić, czy to rozwiązuje problem, ale nic. Ten sam błąd.
Brajeshwar

Czy próbowałeś wykonać chmod 777 katalogu mysql, usunąć plik pid i zrestartować MySQL?
LonnyLot

3

Mój problem polegał na tym, że raz uruchomiłem serwer jako sudo, a następnie próbowałem uruchomić ponownie jako użytkownik lokalny.

Tutaj mysql nie mógł zapisać do pliku „.err”, którego właścicielem jest root. Musiałem usunąć ten plik i zrestartować serwer:

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

2

Mam podobny problem z MySQL na Macu (Mac Os X Nie można uruchomić serwera MySQL. Powód: 255, a także „BŁĄD! Serwer zakończył pracę bez aktualizacji pliku PID”). Po długim procesie prób i błędów, w końcu w celu przywrócenia uprawnień do pliku, po prostu to zrobiłem:

uruchom aplikację Disk Utilities.app
wybierz mój dysk na lewym panelu
kliknij przycisk „Napraw uprawnienia dysku”

To załatwiło sprawę dla mnie. Mając nadzieję, że to pomoże komuś innemu.


1

U mnie zadziałało z:

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

1

U mnie zadziałało:

  1. Przejdź do katalogu instalacyjnego mysql
  2. sudo chmod -R 777 data
  3. Następnie wróć o jeden katalog
  4. cd support-files/
  5. sudo ./mysql.server start

Następnie serwer zaczął działać.

Ale problem z tą metodą polega na tym, że muszę to powtarzać za każdym razem, gdy chcę teraz uruchomić mysql. Nie wiem, dlaczego nagle zaczęło się tak zachowywać.


1

Znajdź plik usr / local / var / mysql / your_computer_name.local.err i zapoznaj się z dodatkowymi informacjami o błędzie

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

Prawdopodobnie jest to problem z uprawnieniami

  1. Sprawdź, czy mysql działa i zabij go

ps -ef | grep mysql

kill -9 PID

gdzie PID to wartość drugiej kolumny 2. Sprawdź własność 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 /


1

Spróbuj tego (OSX)

Krok 1: ps -aux | grep mysql

Następnie zabij 4-cyfrowy numer PID

Krok 2: kill 1965

Krok 3: mysql.server start

Lub mając trudności ze zlokalizowaniem tych numerów PID, spróbuj tego poniżej

Krok 1 ponownie: ps -aux | grep mysql

Krok 2 ponownie: killall

Krok 3 ponownie: mysql.server start


1

Sprawdź dziennik, uzyskasz bardziej szczegółowe informacje.

Użyj poniższego polecenia, aby dostosować dziennik błędów

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

U mnie brakuje jednego z katalogów, po utworzeniu serwer wystartował.


1

Kluczową kwestią jest sprawdzenie pliku .err, który domyślnie w systemie Mac OSX się w nim znajduje /usr/local/var/mysql.

Ten plik dziennika ujawnił mi, że muszę usunąć następujące pliki:

ibdata1
ib_logfile0
ib_logfile1

Uruchamianie MySQL z mysql.startdziałało później pomyślnie. Pamiętaj, że usunięcie tych plików prawdopodobnie spowoduje utratę danych.



0

Miałem ten sam problem:

Ale sytuacja była taka, że ​​za każdym razem, gdy próbuję wejść:

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

localhost.pidtworzony jest plik o nazwie, zamiast iMax0.local.pidktórego podano w błędzie:

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

Rozwiązaniem, które działało dla mnie, było skopiowanie localhost.pidi zmiana nazwy na iMax0.local.pid.


0

Moje rozwiązanie na OSX El Capitan to:

sudo chmod ugo+w /tmp

Został nagle uszkodzony.

Błąd:

ERROR! The server quit without updating PID file

a dziennik pokazywał:

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

Warto również zauważyć, że w systemie OSX my.cnfdomyślnie nie ma pliku i nie jest on potrzebny, czego nie znałem. Powodzenia!



0

Miałem podobny problem. Ale poniższe polecenia uratowały mnie.

cd /usr/local/Cellar
sudo chown _mysql mysql

0

To jest problem z uprawnieniami do pliku. Sprawdź uprawnienia do dysku i napraw.

Osx => Cmd + Space => Disk Utilty => Verify Disk Permissions.

Weryfikacja zakończona po naprawie uprawnień do dysku. Polecenie start mysql.server zadziałało pomyślnie.


To zadziałało dla mnie. Spróbuj tego, zanim zrobisz cokolwiek innego.
kamlesh

0

Żadna z odpowiedzi nie pomogła. Jednak po prostu się udało sudo mysql.server starti fajnie się udało.

Również dla mnie NIE pokazał problemu z uprawnieniami w pliku * .err.


0

Miałem ten problem na Linuksie, ale przyczyna jest istotna dla każdej instalacji mysql. W moim przypadku serwer ulegał awarii przed zakończeniem uruchamiania i zaktualizowaniem pliku pid. Komunikaty o błędach pojawiły się podczas uruchamiania mysqld bezpośrednio, zamiast przez „service mysql start”.

W moim przypadku przyczyną była pełna partycja, na której znajdowały się pliki dziennika. Usunięcie plików dziennika pozwoliło mysql na ponowne uruchomienie. Aby przetestować ten problem, przejdź do lokalizacji dzienników aktywności mysql i zrób df ..


0

Jeśli zaktualizowałeś swoją instalację mysql do 8.x, sprawdź, czy Twoja poprzednia wersja jest obsługiwana do aktualizacji .

Jeśli nie, mysql nie będzie działać! Odinstaluj mysql wraz ze wszystkimi plikami konfiguracyjnymi w /usr/local/var/mysql(usuń cały folder). Zainstaluj ponownie mysql.

UWAGA: ponowna instalacja może spowodować utratę danych.


0

wszystkie powyższe rozwiązania nie działają dla mnie. ale dają mi wskazówki, jak naprawić ten błąd.

mysql.server start ---- błąd Serwer zakończył pracę bez aktualizacji pliku PID

Zainstalowałem mysql@5.7 na moim macbooku mojave z homebrew

napar zainstaluj mysql@5.7

Dziennik błędów mysql znajdujący się w /usr/local/var/mysql/IU.lan.err, jest w nim jedna linia: Nie można otworzyć i zablokować tabel uprawnień: Tabela 'mysql.user' nie istnieje

po wypróbowaniu wielu postów w wyszukiwarce goole, zwróciłem się do baidu https://blog.csdn.net/xhool/article/details/52398042 zainspirowany tym postem, znalazłem rozwiązanie:

rm / usr / local / var / mysql / *

mysqld --initialize

w bash zostanie wyświetlone losowe hasło użytkownika root. ale polecenie mysql -uroot -p [theRandomPassword] nie działa. Więc muszę zresetować hasło. utwórz plik init z taką zawartością

USTAW HASŁO DLA 'root' @ 'localhost' = PASSWORD ('MyNewPass');

umieść go w dowolnym łatwym do znalezienia katalogu, takim jak Desktop

mysqld --init-file = [YourInitFile] &

wiele dzienników drukowanych na ekranie.

mysql -uroot -pMyNewPass

ciesz się swoim mysql w wysokiej wersji!


0

Zdarzyło mi się to, ponieważ faktycznie przechodziłem z MariaDB do MySQL. Powrót do MariaDB rozwiązał ten problem.

Domyślam się, że istniejąca baza danych nie była kompatybilna.


To też był mój problem, przechodziłem z MariaDB na MySQL. Jednak powrót do MariaDB nie był akceptowalnym rozwiązaniem. Usunąłem nowy mysql, brew uninstall mysql@8.0a następnie usunąłem stary folder mysql utworzony przez MariaDB sudo rm -rf /usr/local/var/mysql(to oczywiście usunie twoje bazy danych). Wtedy brew install mysql@8.0i mysql.server starti to działa.
antriver

0

Rozwiązano to za pomocą sudo chown -R _mysql:_mysql /usr/local/var/mysql Podziękowania dla Matteo Alessani


0

Ten błąd może być faktycznie wyświetlany, ponieważ mysql jest już uruchomiony. Spróbuj zobaczyć aktualny stan poprzez:

mysql.server status

Zawsze rozwiązywałem to, usuwając pliki dziennika, ale psw rzeczywistości pokazywałem procesy mysql. Zabiłem wszystko, uruchomiłem ponownie mysql.server restarti zadziałało!
JEŚĆ
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.