Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql Фатална грешка:не може да задели памет за буферния пул

TLDR;

Mysql не може да се рестартира, защото няма памет, проверете дали имате конфигуриран подходящ суап файл.

Не помогна? Ако това не е вашият проблем, по-квалифицирани въпроси за продължаване на проучването са:

Фон

Имах точно този проблем при първата система, която настроих на EC2, характеризираща се с това, че хостваният там wordpress сайт понякога сваля с „Грешка при установяване на връзка с базата данни“.

Регистраторите показаха същата грешка, която OP публикува. Моето четене на грешката (премахнати времеви печати) е:

  • Грешка при липса на памет: InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • InnoDB не може да стартира без достатъчно памет [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 се изключва, което в този контекст наистина означава неуспешно рестартиране! [Note] /usr/sbin/mysqld: Shutdown complete

Проверка на /var/log/syslog и търсене на mysql добиви:

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>

Забележка:може да се наложи да архивирате и търсите в архивирани регистрационни файлове, ако грешката е възникнала преди регистрационните файлове да бъдат завъртени от cron.

Решение

В моя случай основният проблем беше, че пропуснах да конфигурирам суап файл.

Можете да проверите дали имате конфигуриран, като изпълните free -m .

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

В примера по-горе Swap:0 означава, че няма суап файл.

Уроци за настройка:

Обърнете внимание, че по-голямото не е непременно по-добро! От ръководството за Ubuntu :

Относно другите отговори тук...

The InnoDB memory heap is disabled

Благодарение на:Коментар на Рубен Шаде

[Note] Plugin 'FEDERATED' is disabled.

Вижте: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. mysqld услуга спира веднъж на ден на ec2 сървър

  2. Актуализация на MySQL CASE WHEN/THEN/ELSE

  3. Echo/return добавя празно пространство преди променлива

  4. Грешка при стартиране на MySQL сървъра „Сървърът излезе без актуализиране на PID файл“

  5. Кой е най-сигурният начин да добавите html/css/js към mysql?