Błąd uruchamiania serwera MySql „Serwer zakończył pracę bez aktualizacji pliku PID”

284

W systemie Snow Leopard uruchomienie MySQL powoduje następujący błąd:

Serwer zakończył pracę bez aktualizacji pliku PID

my.cnf

[mysqld]
port            = 3306

socket          = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 16K

pid-file=/var/run/mysqld/mysqld.pid

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid
Chinmay
źródło
7
działający jako użytkownik admin. z sudo /usr/local/mysql/support-files/mysql.server start
Chinmay
6
taki sam problem. Zainstalowano mysql z parzeniem
vrybas
20
mam ten sam problem. zainstalowany również z naparem.
jspooner
11
Mam tę skrzynkę również na moim komputerze Mac i właśnie usunąłem dziennik błędów, taki jak „/usr/local/var/mysql/*.err”, uruchomiony pomyślnie.
Mathew P. Jones
3
Mam również ten sam błąd na komputerze Mac. Ale rozwiązałem to. Jeśli instalujesz za pomocą pliku .dmg, przejdź do preferencji systemowych, a następnie kliknij ikonę mysql, a następnie kliknij przycisk Start mysql.
Amaranadh Meda

Odpowiedzi:

276

spróbuj znaleźć swój plik dziennika z przyrostkiem „.err”, powinno być więcej informacji. Może być w:

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

Prawdopodobnie jest to problem z uprawnieniami

  1. sprawdź, czy działa jakaś instancja mysql

    ps -ef | grep mysql

    jeśli tak, powinieneś to zatrzymać lub zabić proces

    zabij -9 PID

    gdzie PIDjest wyświetlany numer obok nazwy użytkownika na wyjściu poprzedniego polecenia

  2. sprawdź własność /usr/local/var/mysql/

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

    jeśli jest właścicielem root, powinieneś to zmienić mysqllubyour_user

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

Tombart
źródło
24
Musiałem przejść do użytkownika mysql zamiast mojego użytkownika.
Jared,
3
pracował dla mnie. sprawdziłem plik błędu i powiedziałem, że to ze względu na uprawnienia do pliku. wykonał polecenie chown i działał. dzięki!!
Śledzenie pakietów
2
sudo chown -R mój_użytkownik / usr / local / var / mysql / pracował dla mnie przynajmniej
Bjørn Børresen
Z własnego doświadczenia - uważaj, że po wykonaniu sudo chown nie masz obecnie żadnych procesów mysql uruchomionych przez innego użytkownika lub użytkownika root. ps -ef | grep mysql sprawdzi, czy nic nie masz uruchomione - w przeciwnym razie nie będziesz mógł go uruchomić.
Arthur Frankel
1
Całkowite oszczędzanie życia. Moją jedyną obserwacją jest to, że ścieżka do folderu mysql może się różnić.
ALisboa,
198

Czy postępowałeś zgodnie z instrukcjami od brew install mysql?

Skonfiguruj bazy danych, aby działały JAKO KONTO UŻYTKOWNIKA z:

W przypadku mysql 5.x:

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

Aby skonfigurować tabele podstawowe w innym folderze lub użyć innego użytkownika do uruchomienia mysqld, przejrzyj pomoc dla mysqld_install_db:

mysql_install_db --help

i przejrzyj dokumentację MySQL:

Dla mysql 8.x:

unset TMPDIR
mysqld --initialize-insecure --log-error-verbosity --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

Upewnij się, że /usr/local/var/mysqlpowyższy katalog danych jest pusty, w razie potrzeby wykonaj kopię zapasową.

Aby uruchomić np. Użytkownika „mysql”, może być konieczne sudo:

sudo mysql_install_db ...options...

Uruchom mysqld ręcznie za pomocą:

mysql.server start

Uwaga: jeśli to się nie powiedzie, prawdopodobnie zapomniałeś wykonać pierwsze dwa kroki wyżej

svs
źródło
78
Jeśli wielokrotnie pojawia się ten sam błąd, nawet po wykonaniu kroków z danych wyjściowych, usuń plik * .err z tego samego katalogu, co plik * .pid. mahdiyusuf.com/post/21022913180/…
ekillaby
6
Próbowałem postępować zgodnie z tymi instrukcjami milion razy, ale nigdy nie udało mi się. Próbowałem „oszukiwać”, nie usuwając wszystkich rzeczy, o których ostrzegał mnie piwowar, ponieważ myślałem, że nie mają znaczenia. Ostatecznie oczyszczenie i przestrzeganie zaleceń lekarzy browarnictwa umożliwiło przeprowadzenie konfiguracji opisanej powyżej. Tak więc wiadomość dla każdego, kto przejeżdża; nie próbuj oszukiwać piwowara i myślę, że wiesz lepiej!
rozpiętość
9
Nadal mam wiele błędów, kiedy warzę lekarza i dodawanie pozwolenia na pisanie własnemu użytkownikowi załatwiło sprawę. sudo chown -R your_user /usr/local/var/mysql/podobnie jak odpowiedź
@Tombart
1
@countfloortiles Tak! Usunął to plik błędu. :-)
ott--
6
mysqld_install_dbKomenda daje mi błądmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
snowcrash
125

Miałem ten sam problem na komputerze Mac (poprawnie wykonałem wszystkie kroki instalacji sugerowane przez brew install).

Usunięcie pliku błędu naprawiło go dla mnie:

sudo rm -rf /usr/local/var/mysql/dev.work.err( dev.workto moja nazwa hosta)

To działało, ponieważ dev.work.errbył własnością _mysql:wheelzamiast mojej własnej nazwy użytkownika. ZGŁOSZENIE pliku błędu prawdopodobnie również go naprawiłoby.

ukliviu
źródło
2
To rozwiązało również mój problem, po ponownym uruchomieniu mysql nie mógł już działać, dając mi ten sam problem, ale usunięcie dziennika błędów, który był własnością _mysql: admin rozwiązał problem
980085
5
Wydawało się to najbardziej pomocne, uświadomiłem sobie, że nie powinienem uruchamiać tej usługi w SUDO, ale uruchamiać ją na własnym koncie użytkownika.
Bnjmn,
3
To całkiem dobra odpowiedź dla tych, którzy zainstalowali MySQL przy użyciu Homebrew
Stephane Paquet
Po tygodniach próbowania różnych rzeczy, kiedy usunąłem plik błędu, wszystko zaczęło działać. Dzięki
DF,
Nie musiałem go usuwać, po prostu przerzuciłem go z powrotem na moje konto, ponieważ gdzieś przejęło go konto _mysql.
Sammy Larbi,
90

Po ponownym uruchomieniu miałem ten sam problem. Oto jak to naprawiłem:

 sudo chown -R _mysql /usr/local/var/mysql
Sam Ruberti
źródło
wielkie dzięki - nie zapomnij jednak wykonać kopii zapasowej, na wypadek, gdybyś
bałagan
Dzięki. Miałem problem z Lamppem w Ubuntu. Skopiowałem cały folder lampp z / opt na nowy serwer. Kiedy próbowałem uruchomić mysql, dostałem komunikat: Serwer zakończył pracę bez aktualizacji pliku PID. Przejdź do lampp / var / i wykonaj chown -R mysql mysql / To działało dla mnie!
Dave
6
Dzięki, jesteś moim bohaterem;)
Fareed Alnamrouti
Wielkie dzięki kolego! Ocalił dzień!
Masiar
8
W przypadku El Capitan działało to:sudo chown -R _mysql /usr/local/mysql/data
Justin,
33

To działało dla mnie ...

Sprawdź wszystkie uruchomione procesy MySQL:

$ ps aux | grep mysql

USER     PID    %CPU  %MEM 
_mysql   5970   0.0   0.4 ...

Następnie zabij wszystkie procesy wymienione w powyższym poleceniu, wykonując następujące czynności:

$ sudo kill -9 [PID]

Zamień [PID]na indywidualny PID z powyższej listy, np 5970.

Zrób to dla wszystkich linii, które widzisz za pomocą pierwszego polecenia.

Następnie możesz ponownie uruchomić serwer MySQL:

mysql.server start
mikoop
źródło
lub użyj, pkill mysqlaby zabić wszystkie procesy pasujące do „mysql” ( -9w większości przypadków nie jest konieczne).
bfontaine
zabić cały proces z określonym identyfikatorem i uruchomić go ponownie
Anupam Maurya
26

Ten błąd może wystąpić podczas próby uruchomienia msql po nieprawidłowym zamknięciu.

  1. Spójrz na plik dziennika błędów mysql. Jeśli wspomina coś w rodzaju „Sprawdź, czy nie masz jeszcze innego procesu mysqld używającego tych samych danych lub plików dziennika”. , musisz poprawnie zamknąć ten proces.

  2. Sprawdź, na jakim procesie działa mysql, użyj tego polecenia: lsof -i:3306

Twój wynik powinien wyglądać następująco:

COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  4249 username   17u  IPv4 0x7843d9d130469c0b      0t0  TCP localhost:mysql (LISTEN)
  1. Zakończ proces uruchamiający mysql: kill -15 4249

Kill -15 wysyła siganl do procesu, aby zwolnić wszystkie blokowane zasoby i zakończyć proces później.

  1. Teraz mysql powinien uruchomić się bez problemów: mysql.server start
cosbor11
źródło
To nadal działa dla mnie w High Sierra, niezależnie od tego, co jest tego warte.
Jonathan Stegall
24

Mój plik błędów powiedział mi również, że port może być używany przez inny proces, ale po prostu uruchomienie sudo mysql.server startrozwiązało problem.

jaredsmith
źródło
tak ... to też zadziałało dla mnie ... i nic powyżej nie zadziałało
Prashant
Postępowałem zgodnie z instrukcjami, które gdzieś przeczytałem, aby uruchomić MySQL na komputerze Mac: „sudo /usr/local/mysql/support-files/mysql.server start”. To spowodowało błąd „serwer zakończył pracę bez aktualizacji pliku pid” i tak właśnie dostałem się na tę stronę. Po wypróbowaniu wielu odpowiedzi znalazłem „sudo mysql.server start” i zadziałało. Dzięki.
rodmclaughlin
19

Spróbuj usunąć ib_logfile0i ib_logfile1pliki, a następnie uruchomić ponownie mysql

rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1

Mi to pasuje.

użytkownik3890355
źródło
1
Usunąłem również .errplik z tego samego katalogu, który działał dla mnie.
Anthony Do
Dobrze. To jest bardzo proste i naprawdę działa dla mnie. Ale w moim przypadku ib_log*.bak
zmieniam
18

Jeśli żadna odpowiedź Ci nie pomogła, po prostu usuń folder, /usr/local/var/mysqla następnie zainstaluj ponownie mysql brew reinstall mysql.

użytkownik3890355
źródło
9
OSTRZEŻENIE oznacza to usunięcie wszystkich baz danych.
tematycznie
Zainstalowałem wcześniej mysql w wyższej wersji, niż instaluję mysql7.7 i ten problem występuje. Wystarczy usunąć / usr / local / var / mysql i brew reinstall [email protected]rozwiązać go.
Pegasus
Najpierw przenieś dbs pod / usr / local / var / mysql do innego folderu. Po instalacji i pomyślnym uruchomieniu usługi mysql spróbuj przenieść potrzebną bazę danych z powrotem.
civic.LiLister
15

Ostatnio natknąłem się na ten problem, jednak wcześniej działał, a potem przestał.

To dlatego, że początkowo zaczynałem mysql.serverjako root zamiast siebie.

Rozwiązaniem było usunięcie pliku dziennika błędów (który był własnością _mysql). Uruchomienie go ponownie sprawiło, że minęło.

Roland Parnaso
źródło
Dzięki! Przez godzinę szukałem tego samego problemu, a potem natknąłem się na twoją odpowiedź.
FLY
11

Dla mnie musiałem ponownie zainstalować mysql

brew reinstall mysql

a następnie poniżej Aby uruchomić, uruchom teraz mysql i uruchom ponownie przy logowaniu:

brew services start mysql
sumit
źródło
10

Rozwiązanie, które działało dla mnie, było tutaj: /server/334284/cant-create-pid-file-on-mysql-server-permission-denied

Wydaje się, że zmiana niektórych moich uprawnień załatwiła sprawę. Używam MacBooka Air z połowy 2012 r. Z systemem OS X 10.8.2, a mysql został zainstalowany z Homebrew.

chmod 0755 /var
chown root:wheel /var/tmp
sudo chmod 0771 /usr/local/var/mysql/*
Gabe
źródło
10

Dla mnie poprawka była prosta:

top

pokazał, że mysqld już działa

sudo killall mysqld 

następnie zezwolił na rozpoczęcie procesu

Luke Madhanga
źródło
8

Miałem ten problem podczas próby uaktualnienia systemu MacOS X 10.7.5.

Niestety mysql został również zaktualizowany do wersji 5.6.10 z 5.5.14. Próbowałem nowego, nie działało.

Postanowiłem wrócić do mojej starej konfiguracji i zrobiłem

brew switch mysql 5.5.14

To nie rozwiązało problemu. Gdzie indziej czytałem i robiłem to, voila! Wszystko wróciło :)

cd /usr/local/var/mysql
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
cenk
źródło
To działało dla mnie po pierwszym użyciu, brew upgrade mysqla następnie w brew switch mysql 5.7.17mojej poprzedniej wersji. Dziwne!
Jorge Orpinel,
7

Używam,

Zainstalowałem MySQL przy użyciu homebrew ('brew install mysql'). Zainstalował kilka zależności, a następnie mysql.

Kiedy próbowałem to uruchomić,

west$ mysql.server start
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid).

Uruchomiłem to polecenie,

west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

i MySQL działa.

Pamiętaj, że musisz uruchomić mysql_install_db z najwyższego poziomu katalogu mysql (IE, usr / local / Cellar / mysql / 5.5.25). Uruchomienie go bezpośrednio w katalogu / scripts nie zapewnia wystarczającego kontekstu do uruchomienia.

westonplatter
źródło
Pracowałem dla mnie z 5.5.28 i warzyłem na OSX 10.7.5
ch3rryc0ke 14.12
7

Dla mnie rozwiązaniem było zastąpienie / poprawienie katalogu danych w / etc / my / cnf.

Zbudowałem MySQL 5.5.27 ze źródła zgodnie ze wskazówkami zawartymi w pliku readme:


# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
shell> make
shell> make install
# End of source-build specific instructions

# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &

# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

mysqld_safe zakończył się bez wyjaśnienia. uruchomienie /etc/init.d/mysql.server startspowodowało błąd:

„Serwer zakończył pracę bez aktualizacji pliku PID”

Zauważyłem jednak coś dziwnego w instrukcjach instalacji. Ma własność zmienioną na mysql dla katalogu „data”, ale nie na „var”; jest to niezwykłe, ponieważ przez lata musiałem się upewnić, że katalog var jest zapisywalny w mysql. Więc ręcznie pobiegłemchown -R mysql /usr/local/mysql/var a następnie próbowałem go uruchomić ponownie. Wciąż nie ma szczęścia. Co gorsza, nie ma pliku .err w katalogu var - to było w katalogu „data”! więc skrypty / mysql_install_db konfigurują obóz w / usr / local / mysql / var, ale reszta aplikacji wydaje się chcieć wykonywać swoją pracę w / usr / local / mysql / data!

Właśnie edytowałem /etc/my.cnf i pod sekcją [mysqld] dodałem dyrektywę, aby wyraźnie wskazać katalog danych mysql na var (jak zwykle tego oczekuję), a po tym mysqld uruchamia się w porządku. Dyrektywa do dodania wygląda następująco:

datadir = / usr / local / mysql / var

Pracował dla mnie. Mam nadzieję, że to ci pomoże.

SKelly
źródło
5

Wygląda na to, że proces MySQL działa, dlatego nie możesz korzystać z portu. Możesz sprawdzić działający proces MySQL za pomocą następującego polecenia:

ps auxf | grep mysql

Jeśli pojawi się jakikolwiek proces MySQL, zabij ten identyfikator procesu za pomocą kill -9 PID, a następnie spróbuj uruchomić MySQL.

colin2328
źródło
Ta odpowiedź jest moim wybawcą.
Sangbeom Han
5

Uruchom MySQL w trybie awaryjnym

/usr/local/mysql/bin/mysqld_safe start

LUB

na MAC End dowolny mysqllubmysqld zadanie (lub inne) w aplikacji Monitor aktywności.

lub sprawdź błąd przez

tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Saurabh Chandra Patel
źródło
4

Co mówi dziennik błędów? Wystąpił ten błąd, który skończył się starym niepoprawnym ustawieniem w pliku my.cnf, które wskazał dziennik błędów mysql. Jeśli nie jest to złe ustawienie konfiguracji, dziennik błędów powinien przynajmniej wskazywać właściwy kierunek.

Cóż, zakładam, że OP naprawił to w tym momencie ... ale mam nadzieję, że wskazuje to innym widzącym ten błąd we właściwym kierunku.

Brian Ray
źródło
4

Przy pomocy kilku zamieszczonych tutaj odpowiedzi udało mi się znaleźć problem

Najpierw biegnę

sudo -i

Mogę mieć dostęp do roota.

Następnie usunąłem plik xxxx.err

rm -rf /usr/local/mysql/data/xxxx.err

po uruchomieniu MySQL w SafeMode

/usr/local/mysql/bin/mysqld_safe start

Spróbuje się uruchomić i zakończy działanie z powodu błędu ... zostanie utworzony nowy plik xxx.err i musisz go przeczytać, aby zobaczyć przyczynę błędu

tail -f /usr/local/mysql/data/mysqld.local.err

W moim przypadku z jakiegoś powodu brakowało jakiegoś folderu i pliku w /var/log/folderze ... Więc stworzyłem oba

cd /var/log

mkdir mysql

touch mysql-bin.index

Po utworzeniu nowego pliku musisz zmienić uprawnienia

chown -R _mysql /var/log/mysql

Gdy wszystkie te kroki zostały podjęte, moja baza danych zaczęła działać natychmiast ...

Mam nadzieję, że może to pomóc innym tutaj ... Kluczem jest odczytanie błędu i zalogowanie się oraz znalezienie tego, co jest nie tak ...

Paulo Griiettner
źródło
4

W moim przypadku błąd występuje z powodu problemu z dostępem do pliku dziennika błędów.

Poniższe dwa polecenia pomogą mi rozwiązać problem.

sudo chown <user> /usr/local/var/mysql/<my-host-name>.err
sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err
FrankSu
źródło
3

Mam nadzieję, że ta praca dla ciebie.

Po sprawdzeniu dziennika błędów znalazłem to:

120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work.
120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled.
120309 17:42:50 InnoDB: The InnoDB memory heap is disabled
120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3
120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M
120309 17:42:50 InnoDB: Completed initialization of buffer pool
120309 17:42:50  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 /usr/local/mysql/data/ib_logfile0
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended

Aby to rozwiązać, nadałem prawa własności do całego folderu mysql:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.21-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.21-osx10.6-x86_64

Następnie (możesz to zrobić również z wiersza polecenia) zastosowałem uprawnienia (po przyznaniu tej własności użytkownikom _mysql i mysql ) do wszystkich zamkniętych folderów z menu „get info” folderu w / usr / local / mysql -5,5.21-osx10,6-x86_64 . Nie musisz tego dodawać do aliasu, ponieważ jest to tylko alias.

Nazwa folderu zależy od posiadanej wersji instalacyjnej mysql.

lu1s
źródło
3

Miałem ten sam problem. Przeniesienie mojego pliku /etc/my.cnf działało dla mnie. Mam informacje tutaj

Nealv
źródło
3

Miałem ten sam problem, dla mnie robiłem usuwanie naparu podczas poprzedniej instalacji mysqld. Wydaje się, że brew nie zatrzymuje usługi przed odinstalowaniem.

Po sprawdzeniu pliku .err zobaczyłem zarejestrowany błąd, że po zakończeniu starej usługi może działać kolejna kopia mysql. Byłem wtedy w stanie zrestartować nową instalację mysql.

Szturchać
źródło
Tak, sprawdź dzienniki błędów. W moim przypadku pobiegłem, ls -latr /usr/local/var/mysql/aby znaleźć najnowszy zmodyfikowany plik, który zawiera dziennik błędów, a następnie tail -50 name.errzobaczyć błąd, który był problemem w konfiguracji.
mahemoff
dzięki Bogu miałeś rację. Użyłem, ps aux | grep mysqlda następnie zakończyłem proces, kill -9 [proccessid]a serwer uruchomił się pomyślnie
Sagish,
3

Prosty....

Napraw błąd gniazda MySQL 2002

Napraw błąd zagnieżdżenia 2002 - który łączy miejsce, w którym MySQL umieszcza gniazdo i gdzie OSX uważa, że ​​powinno być, MySQL umieszcza go w / tmp, a OSX szuka go w / var / mysql gniazdo jest rodzajem pliku, który pozwala klientowi mysql / komunikacja z serwerem.

sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

Dobra robota : )

To bardzo mi pomaga! wziąłem ten przewodnik od facetów na http://coolestguidesontheplanet.com/

Carloslozada
źródło
3

Spróbuj tego..

  1. Przejdź do katalogu nadrzędnego problemu cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (usuwa plik)
  3. touch YOURUSERNAME.local.pid (generuje nowy plik * .local.pid, na który zgłosił błąd)
  4. cd z powrotem do projektu i zrestartuj mysql używając mysql.server start
Nick Sarafa
źródło
1
To zadziałało dla mnie. Powodem jest to, że error.logplik był własnością „_mysql” zgłaszającego błędy w logach. Chciałem tylko zalogować, że ktoś inny ma ten problem. 150818 19:32:06 mysqld_safe Logging to '/opt/boxen/log/mysql/error.log'. 150818 19:32:06 mysqld_safe Starting mysqld daemon with databases from /opt/boxen/data/mysql /opt/boxen/homebrew/bin/mysqld_safe: line 129: /opt/boxen/log/mysql/error.log: Permission denied
Donovan
To nie działa, jeśli twój problem dotyczy uprawnień, co powoduje ten sam błąd mysql.
mpoletto
Pracował również dla mnie. Musiałem także zrestartować mój apache (dla tych, którzy również używają stosu LAMP).
Tommyixi
3

W jakiś sposób zepsułem swoje uprawnienia na El Capitan i postanowiłem ponownie zainstalować MySQL od zera.

Używam naparu na el capitan i postanowiłem ponownie zainstalować:

brew uninstall mysql
sudo rm -rf /usr/local/var/mysql
brew install mysql
mysql.server start # ... SUCCESS

Uprawnienia do plików podczas świeżej instalacji zmieniły się z _mysqlna moją nazwę użytkownika

 ls -alh /usr/local/var/mysql
drwxr-xr-x   22 lfender  admin   748B Mar 22 09:58 .
# ... etc
lfender6445
źródło
2

Sprawdź, czy na dysku pozostało wolne miejsce. Mam ten problem, gdy na dysku nie ma już miejsca.

Thavan
źródło
Nigdy bym nie pomyślał o problemie z przestrzenią, gdybyś nie wspomniał. Jesteś wybawcą!
Kshitij Bajracharya
2

Problem dotyczy uprawnień, nie można go uruchomić, ponieważ nie można pisać na mac.err, ponieważ jest własnością kogoś innego.

Upewnij się, że folder / usr / local / var / mysql jest własnością użytkownika, który uruchomi mysql. Jeśli uruchomię mysql jako jack, wszystko będzie dobrze. Jeśli jednak uruchomisz go jako root, utworzy on plik mac.err (należący do roota), do którego Jack nie może zapisać, więc kiedy spróbujesz uruchomić go ponownie jako jack, zakończy się niepowodzeniem.

  1. Upewnij się, że folder i pliki są własnością użytkownika uruchamiającego mysql.server start
  2. Upewnij się, że nie ma jeszcze pliku mac.err lub mac.pid należącego do kogoś innego.
  3. Start jest jak właściwy użytkownik.
Jack Sukerman
źródło
Użyłem chown -R <nazwa_użytkownika> / usr / local / var / mysql i działało to świetnie. Niezłe rozwiązanie.
mbokil
2

W moim przypadku mam ten problem na vps, cPanel .

Próbowałem większości z powyższych odpowiedzi, ale nie sukces.

  1. sprawdź, gdzie znajduje się dziennik błędów. Zostanie to wspomniane na końcu linii błędu.

BŁĄD! Serwer zakończył pracę bez aktualizacji pliku PID (/var/lib/mysql/111318.vps-11.com.pid).

  1. Otwórz ten plik (/var/lib/mysql/111318.vps-11.com.err) i sprawdź dolne linie. W moim przypadku jest

[BŁĄD] Błąd krytyczny: Nie można otworzyć i zablokować tabel uprawnień: Tabela „./mysql/db” jest oznaczona jako zawieszona i powinna zostać naprawiona

  1. Jak rozwiązać ten problem: Odzyskiwanie i naprawianie indeksów tabeli za pomocą polecenia:

[~] # myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (Re) Uruchom swój mysql
Sadee
źródło