MySQL が起動しなくなった("Check that mysqld is running and that the socket" & "InnoDB: mmap(137363456 bytes) failed; errno 12")

AWS で t2.micro でサーバを立てて Webサービスを立ち上げているとよく落ちる。

LAMP環境であるが、DOS攻撃を受けたら真っ先にMySQLが落ちてしまう。

適当にMySQLを立ち上げ直していたが、今日起動しなくなっていた。

環境
 Ubuntu 14.04

```

# /etc/init.d/mysql start
 * Starting MySQL database server mysqld                                   [fail] 

```
とりあえず、syslogを見てみます。

```

root@fablib:/tmp# tail /var/log/syslog
Jul 24 07:00:31 fab /etc/init.d/mysql[5817]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Jul 24 07:00:31 fab /etc/init.d/mysql[5817]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Jul 24 07:00:31 fab /etc/init.d/mysql[5817]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jul 24 07:00:31 fab /etc/init.d/mysql[5817]: 
Jul 24 07:00:31 fab CRON[5085]: (CRON) info (No MTA installed, discarding output)
Jul 24 07:02:08 fab /etc/init.d/mysql[6558]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
Jul 24 07:02:08 fab /etc/init.d/mysql[6558]: #007/usr/bin/mysqladmin: connect to server at 'localhost' failed
Jul 24 07:02:08 fab /etc/init.d/mysql[6558]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
Jul 24 07:02:08 fab /etc/init.d/mysql[6558]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
Jul 24 07:02:08 fab /etc/init.d/mysql[6558]: 
```

うーん、sockファイルね。

```

# cd /var/run/mysqld
# ls
# cd /tmp/
# ls -alh
total 16K
drwxrwxrwt  4 root root 4.0K Jul 24 06:52 .
drwxr-xr-x 22 root root 4.0K Sep 27  2017 ..
drwxrwxrwt  2 root root 4.0K Sep 27  2017 .ICE-unix
drwxrwxrwt  2 root root 4.0K Sep 27  2017 .X11-unix
```

あれ、何もない。pidファイルみたいに落ちた時のゴミファイルが残っているのかと思っていましたが、そうではないようです。

他の方の事例を元に、sockファイルを作りなおしたりしてみたが改善しません。

```

# cd /var/run/mysqld
# ls
# touch mysqld.sock
# chown mysql:mysql mysqld.sock

```

syslogではなく、MySQLのログを見てみます。

```

# ls -alh
total 19M

drwxr-s---  2 mysql     adm    4.0K Jul 24 06:53 mysql
-rw-r-----  1 mysql     adm       0 Oct  3  2014 mysql.err
-rw-r-----  1 mysql     adm       0 Jul 24 06:53 mysql.log
-rw-r-----  1 mysql     adm      20 Jul 23 06:27 mysql.log.1.gz
-rw-r-----  1 mysql     adm      20 Jul 22 06:57 mysql.log.2.gz
-rw-r-----  1 mysql     adm      20 Jul 21 06:38 mysql.log.3.gz
-rw-r-----  1 mysql     adm      20 Jul 20 06:50 mysql.log.4.gz
-rw-r-----  1 mysql     adm      20 Jul 19 06:44 mysql.log.5.gz
-rw-r-----  1 mysql     adm      20 Jul 18 06:42 mysql.log.6.gz
-rw-r-----  1 mysql     adm      20 Jul 17 06:50 mysql.log.7.gz
```

うーん、mysqlというディレクトリがあるが・・・

```

# cd mysql
# ls -alh
total 44K
drwxr-s---  2 mysql adm    4.0K Jul 24 06:53 .
drwxrwxr-x 10 root  syslog 4.0K Jul 24 06:53 ..
-rw-r-----  1 mysql adm    5.5K Jul 24 07:10 error.log
-rw-r-----  1 mysql adm    2.4K Jul 24 06:37 error.log.1.gz
-rw-r-----  1 mysql adm    2.8K Jul 23 06:00 error.log.2.gz
-rw-r-----  1 mysql adm    2.3K Jul 22 06:00 error.log.3.gz
-rw-r-----  1 mysql adm    2.2K Jul 21 06:00 error.log.4.gz
-rw-r-----  1 mysql adm    2.7K Jul 20 06:00 error.log.5.gz
-rw-r-----  1 mysql adm    2.6K Jul 19 06:00 error.log.6.gz
-rw-r-----  1 mysql adm    2.7K Jul 18 06:00 error.log.7.gz

```
こっちが本物らしいですね。

```

# tail -30 error.log
180724  7:08:25 InnoDB: Completed initialization of buffer pool
180724  7:08:25 InnoDB: Fatal error: cannot allocate memory for the buffer pool
180724  7:08:25 [ERROR] Plugin 'InnoDB' init function returned error.
180724  7:08:25 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
180724  7:08:25 [ERROR] Unknown/unsupported storage engine: InnoDB
180724  7:08:25 [ERROR] Aborting

180724  7:08:25 [Note] /usr/sbin/mysqld: Shutdown complete

180724 07:08:25 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
180724 07:10:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
180724  7:10:37 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
180724  7:10:37 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
180724  7:10:37 [Note] Plugin 'FEDERATED' is disabled.
180724  7:10:37 InnoDB: The InnoDB memory heap is disabled
180724  7:10:37 InnoDB: Mutexes and rw_locks use GCC atomic builtins
180724  7:10:37 InnoDB: Compressed tables use zlib 1.2.8
180724  7:10:37 InnoDB: Using Linux native AIO
180724  7:10:37 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
180724  7:10:37 InnoDB: Completed initialization of buffer pool
180724  7:10:37 InnoDB: Fatal error: cannot allocate memory for the buffer pool
180724  7:10:37 [ERROR] Plugin 'InnoDB' init function returned error.
180724  7:10:37 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
180724  7:10:37 [ERROR] Unknown/unsupported storage engine: InnoDB
180724  7:10:37 [ERROR] Aborting

180724  7:10:37 [Note] /usr/sbin/mysqld: Shutdown complete

180724 07:10:37 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
```

うーん、メモリが足りなくなっているらしい。


```

root@fablib:/var/log/mysql# free
             total       used       free     shared    buffers     cached
Mem:       1016256     935508      80748     326408      42652     387616
-/+ buffers/cache:     505240     511016
Swap:            0          0          0
```

どこかでメモリーリークでも起こっているかな？？


```

root@fablib:/var/log/mysql# top

top - 07:15:59 up 299 days,  7:40,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 129 total,   1 running, 128 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.7 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1016256 total,   936028 used,    80228 free,    42688 buffers
KiB Swap:        0 total,        0 used,        0 free.   387744 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                
    1 root      20   0   33492   1860    456 S  0.0  0.2   0:39.93 init                                                   
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                               
    3 root      20   0       0      0      0 S  0.0  0.0   0:11.77 ksoftirqd/0                                            
    4 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0                                            
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                           
    7 root      20   0       0      0      0 S  0.0  0.0   2:43.30 rcu_sched                                              
    8 root      20   0       0      0      0 S  0.0  0.0  10:48.38 rcuos/0                                                
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.02 rcuos/1                                                
   10 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/2                                                
   11 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/3                                                
   12 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/4                                                
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/5                                                
   14 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/6                                                
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/7                                                
   16 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/8                                                
   17 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/9                                                
   18 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/10                                               
   19 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/11                                               
   20 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/12                                               
   21 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/13                                               
   22 root      20   0       0      0      0 S  0.0  0.0   0:00.01 rcuos/14                                               
   23 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                 
   24 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0                                                
   25 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/1                                                
   26 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/2                                                
   27 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/3                                                
   28 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/4                                                
   29 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/5                                                
   30 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/6                                                
   31 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/7                                                
   32 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/8                                                
   33 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/9                                                
   34 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/10                                               


```

ぱっと見わからなかったので、結局、リブート。リブートすると回復しました。