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
Odpowiedzi:
spróbuj znaleźć swój plik dziennika z przyrostkiem „.err”, powinno być więcej informacji. Może być w:
Prawdopodobnie jest to problem z uprawnieniami
sprawdź, czy działa jakaś instancja mysql
jeśli tak, powinieneś to zatrzymać lub zabić proces
gdzie
PID
jest wyświetlany numer obok nazwy użytkownika na wyjściu poprzedniego poleceniasprawdź własność
/usr/local/var/mysql/
jeśli jest właścicielem
root
, powinieneś to zmienićmysql
lubyour_user
źródło
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:
Aby skonfigurować tabele podstawowe w innym folderze lub użyć innego użytkownika do uruchomienia mysqld, przejrzyj pomoc dla
mysqld_install_db
:i przejrzyj dokumentację MySQL:
Dla mysql 8.x:
Upewnij się, że
/usr/local/var/mysql
powyższy katalog danych jest pusty, w razie potrzeby wykonaj kopię zapasową.Aby uruchomić np. Użytkownika „mysql”, może być konieczne
sudo
:Uruchom mysqld ręcznie za pomocą:
Uwaga: jeśli to się nie powiedzie, prawdopodobnie zapomniałeś wykonać pierwsze dwa kroki wyżej
źródło
sudo chown -R your_user /usr/local/var/mysql/
podobnie jak odpowiedźmysqld_install_db
Komenda daje mi błądmysql_install_db: [ERROR] unknown variable 'tmpdir=/tmp'
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.work
to moja nazwa hosta)To działało, ponieważ
dev.work.err
był własnością_mysql:wheel
zamiast mojej własnej nazwy użytkownika. ZGŁOSZENIE pliku błędu prawdopodobnie również go naprawiłoby.źródło
Po ponownym uruchomieniu miałem ten sam problem. Oto jak to naprawiłem:
źródło
sudo chown -R _mysql /usr/local/mysql/data
To działało dla mnie ...
Sprawdź wszystkie uruchomione procesy MySQL:
Następnie zabij wszystkie procesy wymienione w powyższym poleceniu, wykonując następujące czynności:
Zamień
[PID]
na indywidualny PID z powyższej listy, np5970
.Zrób to dla wszystkich linii, które widzisz za pomocą pierwszego polecenia.
Następnie możesz ponownie uruchomić serwer MySQL:
źródło
pkill mysql
aby zabić wszystkie procesy pasujące do „mysql” (-9
w większości przypadków nie jest konieczne).Ten błąd może wystąpić podczas próby uruchomienia msql po nieprawidłowym zamknięciu.
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.
Sprawdź, na jakim procesie działa mysql, użyj tego polecenia:
lsof -i:3306
Twój wynik powinien wyglądać następująco:
kill -15 4249
mysql.server start
źródło
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 start
rozwiązało problem.źródło
Spróbuj usunąć
ib_logfile0
iib_logfile1
pliki, a następnie uruchomić ponownie mysqlMi to pasuje.
źródło
.err
plik z tego samego katalogu, który działał dla mnie.ib_log*.bak
Jeśli żadna odpowiedź Ci nie pomogła, po prostu usuń folder,
/usr/local/var/mysql
a następnie zainstaluj ponownie mysqlbrew reinstall mysql
.źródło
brew reinstall [email protected]
rozwiązać go.Ostatnio natknąłem się na ten problem, jednak wcześniej działał, a potem przestał.
To dlatego, że początkowo zaczynałem
mysql.server
jako 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.źródło
Dla mnie musiałem ponownie zainstalować mysql
a następnie poniżej Aby uruchomić, uruchom teraz mysql i uruchom ponownie przy logowaniu:
źródło
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.
źródło
Dla mnie poprawka była prosta:
pokazał, że mysqld już działa
następnie zezwolił na rozpoczęcie procesu
źródło
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
To nie rozwiązało problemu. Gdzie indziej czytałem i robiłem to, voila! Wszystko wróciło :)
źródło
brew upgrade mysql
a następnie wbrew switch mysql 5.7.17
mojej poprzedniej wersji. Dziwne!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ć,
Uruchomiłem to polecenie,
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.
źródło
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:
mysqld_safe zakończył się bez wyjaśnienia. uruchomienie
/etc/init.d/mysql.server start
spowodował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łem
chown -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.
źródło
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.
źródło
Uruchom MySQL w trybie awaryjnym
LUB
na MAC End dowolny
mysql
lubmysqld
zadanie (lub inne) w aplikacji Monitor aktywności.lub sprawdź błąd przez
źródło
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.
źródło
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 obacd /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 ...
źródło
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.
źródło
Mam nadzieję, że ta praca dla ciebie.
Po sprawdzeniu dziennika błędów znalazłem to:
Aby to rozwiązać, nadałem prawa własności do całego folderu mysql:
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.
źródło
Miałem ten sam problem. Przeniesienie mojego pliku /etc/my.cnf działało dla mnie. Mam informacje tutaj
źródło
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.
źródło
ls -latr /usr/local/var/mysql/
aby znaleźć najnowszy zmodyfikowany plik, który zawiera dziennik błędów, a następnietail -50 name.err
zobaczyć błąd, który był problemem w konfiguracji.ps aux | grep mysqld
a następnie zakończyłem proces,kill -9 [proccessid]
a serwer uruchomił się pomyślnieProsty....
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/
źródło
Spróbuj tego..
cd YOURPATH/usr/local/mysql
rm -rf *.local.err
(usuwa plik)touch YOURUSERNAME.local.pid
(generuje nowy plik * .local.pid, na który zgłosił błąd)mysql.server start
źródło
error.log
plik 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
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ć:
Uprawnienia do plików podczas świeżej instalacji zmieniły się z
_mysql
na moją nazwę użytkownikaźródło
Sprawdź, czy na dysku pozostało wolne miejsce. Mam ten problem, gdy na dysku nie ma już miejsca.
źródło
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.
źródło
W moim przypadku mam ten problem na vps, cPanel .
Próbowałem większości z powyższych odpowiedzi, ale nie sukces.
https://forums.cpanel.net/threads/mysql-is-not-running.407142/
źródło