Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql Błąd krytyczny:nie można przydzielić pamięci dla puli buforów

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:

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:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INTERWAŁ MySQL Minut

  2. Projekt bazy danych:wiele tabel a pojedyncza tabela

  3. Jak utworzyć tabelę mysql z domyślną sygnaturą czasową kolumny current_date?

  4. Jak dodać klienta za pomocą JDBC dla ClientDetailsServiceConfigurer w Springu?

  5. Migracja z SQL Server 2008 R2 do MySQL