sql >> Database teknologi >  >> RDS >> Mysql

mysql Fatal fejl:kan ikke allokere hukommelse til bufferpuljen

TLDR;

Mysql kan ikke genstarte, fordi den er løbet tør for hukommelse. Tjek, at du har konfigureret en passende swapfil.

hjalp det ikke? Hvis det ikke er dit problem, er mere kvalificerede spørgsmål til at fortsætte forskningen:

Baggrund

Jeg havde præcis dette problem på det allerførste system, jeg satte op på EC2, kendetegnet ved, at wordpress-siden, der blev hostet dér, af og til gik ned med "Fejl ved etablering af databaseforbindelse".

Logfilerne viste den samme fejl, som OP'en sendte. Min læsning af fejlen (tidsstempler fjernet) er:

  • Fejl uden hukommelse: InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • InnoDB kan ikke starte uden nok hukommelse [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 lukker ned, hvilket i denne sammenhæng virkelig betyder, at man ikke kan genstarte! [Note] /usr/sbin/mysqld: Shutdown complete

Kontrollerer /var/log/syslog og søger efter mysql giver:

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>

Bemærk:du skal muligvis gunzip og søge gennem arkiverede logfiler, hvis fejlen opstod, før logfilerne blev roteret af cron.

Løsning

I mit tilfælde var det underliggende problem, at jeg havde forsømt at konfigurere en swapfil.

Du kan tjekke om du har en konfigureret ved at køre free -m .

total used free shared buffers cached Mem: 604340 587364 16976 0 29260 72280 -/+ buffers/cache: 485824 118516 Swap: 0 0 0

I eksemplet ovenfor angiver Swap:0 ingen swapfil.

Selvstudier om opsætning af en:

Bemærk, at større ikke nødvendigvis er bedre! Fra Ubuntu-vejledningen :

Angående de andre svar her...

The InnoDB memory heap is disabled

Tak til:Ruben Schade kommentar

[Note] Plugin 'FEDERATED' is disabled.

Se:https://stackoverflow.com/a/16470822/2586761



  1. Sådan bruges "Like" i SQL

  2. Sådan opretter du en procedure inde i en pakke i Oracle

  3. Android:Bulk Insert, når InsertHelper er forældet

  4. Kontrol af værdi i et array inde i én SQL-forespørgsel med WHERE-sætning