AWS MYSQL (mysqli_real_connect (): (HY000 / 2002)): не удается выделить память для буферного пула - PullRequest
0 голосов
/ 17 июня 2019

У меня есть экземпляр t2.small в AWS , который работает в течение большей части 10 месяцев без перезапуска экземпляра EC2 / сервера apache / сервера mysqld и внезапно, несколько минут назад, он не может подключиться к базе данных.

Мне не удалось получить доступ к страницам, которые подключаются к базе данных, и попытка войти в phpmyadmin возвращает ошибку mysqli_real_connect(): (HY000/2002): No such file or directory

Итак, во время паники я сделал следующее:

  1. Попытка перезапустить сервер mysql с помощью sudo service mysqld restart, но он просто продолжал выдавать STOPPED
  2. Перезапустил экземпляр EC2
  3. Он живет (пока, пока снова не рухнет)

Поскольку он разбился, я хотел бы знать, почему он разбился и как предотвратить его повторное падение.

Я покопался в mysqld.log и нашел ниже информацию:

Version: '5.6.39'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)
2019-06-17 14:08:19 15623 [Warning] Buffered warning: Performance schema disabled (reason: init fa
iled).

2019-06-17 14:08:19 15623 [Note] Plugin 'FEDERATED' is disabled.
2019-06-17 14:08:19 15623 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-06-17 14:08:19 15623 [Note] InnoDB: The InnoDB memory heap is disabled
2019-06-17 14:08:19 15623 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-06-17 14:08:19 15623 [Note] InnoDB: Memory barrier is not used
2019-06-17 14:08:19 15623 [Note] InnoDB: Compressed tables use zlib 1.2.8       
2019-06-17 14:08:19 15623 [Note] InnoDB: Using Linux native AIO                 
2019-06-17 14:08:19 15623 [Note] InnoDB: Using CPU crc32 instructions           
2019-06-17 14:08:19 15623 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12                                  
2019-06-17 14:08:19 15623 [ERROR] InnoDB: Cannot allocate memory for the buffer pool           
2019-06-17 14:08:19 15623 [ERROR] Plugin 'InnoDB' init function returned error. 
2019-06-17 14:08:19 15623 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.     
2019-06-17 14:08:19 15623 [ERROR] Unknown/unsupported storage engine: InnoDB    
2019-06-17 14:08:19 15623 [ERROR] Aborting 
...
...(shutdown a bunch of plugins)
...
2019-06-17 14:08:19 15623 [Note] /usr/libexec/mysql56/mysqld: Shutdown complete

Я искал вокруг и нашел Несоответствующий размер пула буферов InnoDB https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html

В частности, он детализирует решение для несовместимого размера пула буферов, выполнив:

innodb_buffer_pool_chunk_size = 536870912
innodb_buffer_pool_instances = 4
innodb_buffer_pool_size = (536870912 * 4) * 8 = 17179869184

Вопросы:

  1. Кто-нибудь из вас сталкивался с этим? Как вы решили это?
  2. Что на самом деле происходит с сервером? Действительно ли мне не хватает памяти для mysqld, поскольку в журналах говорится, что не может выделить память для пула буферов ? (Я всегда проверяю время от времени top, и всегда есть хотя бы половина его бесплатной.)
  3. Откуда вышеприведенный пример от AWS получил число 536870912? И куда мне поставить линии? (/etc/my.cnf)?

Спасибо за чтение и любые комментарии или предложения.

1 Ответ

0 голосов
/ 17 июня 2019

1) Я решил ту же проблему и решил ее, выполнив this .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...