TLDR;
Mysql nie może się zrestartować, ponieważ brakuje mu pamięci, sprawdź, czy masz skonfigurowany odpowiedni plik wymiany.
Nie pomogłeś? Jeśli to nie jest Twój problem, bardziej kwalifikujące się pytania do kontynuowania badań to:
- usługa mysqld zatrzymuje się raz dzień na serwerze ec2
- https://askubuntu. com/questions/422037/optimising-mysql-settings-mysqld-running-out-of-memory
Tło
Miałem dokładnie ten problem w pierwszym systemie, który skonfigurowałem na EC2, charakteryzującym się tym, że hostowana tam witryna wordpress czasami wyłączała się z komunikatem „Błąd podczas nawiązywania połączenia z bazą danych”.
Dzienniki wykazały ten sam błąd, który opublikował OP. Mój odczyt błędu (usunięte znaczniki czasu):
- Błąd braku pamięci:
InnoDB: Fatal error: cannot allocate memory for the buffer pool
- InnoDB nie może się uruchomić bez wystarczającej ilości pamięci
[ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported storage engine: InnoDB [ERROR] Aborting
- mysqld jest zamykany, co w tym kontekście naprawdę oznacza niepowodzenie ponownego uruchomienia!
[Note] /usr/sbin/mysqld: Shutdown complete
Sprawdzanie /var/log/syslog
i wyszukuję mysql plony:
Out of memory: Kill process 15452 (mysqld) score 93 or sacrifice child
Killed process 15452 (mysqld) total-vm:888672kB, anon-rss:56252kB, file-rss:0kB
init: mysql main process (15452) killed by KILL signal
init: mysql main process ended, respawning
type=1400 audit(1443812767.391:30): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=21984 comm="apparmor_parser"
init: mysql main process (21996) terminated with status 1
init: mysql main process ended, respawning
init: mysql post-start process (21997) terminated with status 1
<repeated>
Uwaga:może być konieczne zrzutowanie i przeszukanie zarchiwizowanych dzienników, jeśli błąd wystąpił przed rotacją dzienników przez cron.
Rozwiązanie
W moim przypadku podstawowym problemem było to, że zaniedbałem konfigurację pliku wymiany.
Możesz sprawdzić, czy masz skonfigurowany, uruchamiając free -m
.
total used free shared buffers cached
Mem: 604340 587364 16976 0 29260 72280
-/+ buffers/cache: 485824 118516
Swap: 0 0 0
W powyższym przykładzie Swap:0 oznacza brak pliku wymiany.
Samouczki dotyczące konfiguracji:
- https:// www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04
- https://help.ubuntu.com/community/SwapFaq
Pamiętaj, że większy niekoniecznie znaczy lepszy! Z przewodnika po Ubuntu :
Jeśli chodzi o inne odpowiedzi tutaj...
The InnoDB memory heap is disabled
Podziękowania dla:Komentarz Rubena Schade
[Note] Plugin 'FEDERATED' is disabled.
Zobacz:https://stackoverflow.com/a/16470822/2586761