Сервер Mysql не работает на экземпляре EC2, созданном из AMI

У меня есть экземпляр EC2, в котором сервер Mysql работает нормально. Я создал AMI из этого и запустил новый экземпляр из этого AMI. Теперь сервер Mysql вообще не может запускаться на этом новом AMI.

Ниже о/п:

ubuntu@ip-172-31-66-160:~$ sudo service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: activating (start-post) (Result: exit-code) since Sun 2019-07-21 20:59:25 IST; 28s ago
  Process: 1870 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
  Process: 1862 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1870 (code=exited, status=1/FAILURE);         : 1871 (mysql-systemd-s)
    Tasks: 2
   Memory: 3.2M
      CPU: 247ms
   CGroup: /system.slice/mysql.service
           └─control
             ├─1871 /bin/bash /usr/share/mysql/mysql-systemd-start post
             └─2529 sleep 1

Jul 21 20:59:25 ip-172-31-66-160 systemd[1]: mysql.service: Service hold-off time over, scheduling restart.
Jul 21 20:59:25 ip-172-31-66-160 systemd[1]: Stopped MySQL Community Server.
Jul 21 20:59:25 ip-172-31-66-160 systemd[1]: Starting MySQL Community Server...
Jul 21 20:59:26 ip-172-31-66-160 systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
ubuntu@ip-172-31-66-160:~$ sudo service mysql restart
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.

Я пробовал все, но не смог начать это.

Ближайшие темы, с которыми я столкнулся и безуспешно следовал:

  1. https://askubuntu.com/questions/916009/mysql-wont-start-because-of-apparmor
  2. https://support.plesk.com/hc/en-us/articles/360004185293-Unable-to-start-MySQL-on-Ubuntu-AVC-apparmor-DENIED-operation-open-

Пожалуйста, помогите, я просто ничего не знаю об этом.


person AAgg    schedule 21.07.2019    source источник


Ответы (1)


Наконец, я смог заставить сервер работать на моем новом экземпляре. Чего мне не хватало, так это того, что mysql также имеет множество параметров конфигурации, которые со временем меняются, и они также зависят от конфигурации экземпляра EC2.

В моем случае у моего нового экземпляра очень ограниченная оперативная память, и файл mysql.cnf пытался выделить больше оперативной памяти, чем было на машине, поэтому он терпел неудачу. Как-то,

журналctl -xe

дает другую ошибку, которая заставляет меня думать в неправильном направлении. Я должен был заглянуть в файл журнала mysql, который быстро указал мне на правильную проблему.

Я нашел ниже в файле журнала ошибок, который помог мне изолировать/исправить проблему:

2019-07-21T16:00:55.658985Z 0 [ERROR] InnoDB: mmap(137428992 bytes) failed; errno 12 2019-07-21T16:00:55.658993Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 
2019-07-21T16:00:55.658998Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error 
2019-07-21T16:00:55.659003Z 0 [ERROR] Plugin 'InnoDB' init function returned error. 
2019-07-21T16:00:55.659620Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
2019-07-21T16:00:55.659628Z 0 [ERROR] Failed to initialize builtin plugins.
2019-07-21T16:00:55.659632Z 0 [ERROR] Aborting

Таким образом, mysql не удалось запустить, поскольку в системе отсутствует запрошенный объем памяти. Я прокомментировал все строки распределения памяти в файле my.cnf (полагаясь на настройки по умолчанию), и тогда это сработало.

innodb_buffer_pool_size = 16G
key_buffer_size         = 2G
max_allowed_packet      = 128M
group_concat_max_len = 50000
query_cache_size = 2147483648
query_cache_limit =67108864

Надеюсь, кому-то эта информация будет полезна.

person AAgg    schedule 21.07.2019
comment
Как вы ИСПРАВИЛИ проблему? Это было бы полезно. - person Wilson Hauck; 23.07.2019
comment
Обновил мой ответ с решением. - person AAgg; 24.07.2019