旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【MySQL】 MySQLインストール後、起動に失敗する

ひょんなことからGCPで新しい環境を構築することになり(といっても昔で言うLAMP環境のようなもの) PHPやらNginx、MySQLをインストールしているのですが どうしてもMySQLのStartで[FAILED]になってしまう。

MySQLyumで入れているし、何か指定が必要だったのかとか考えたのですが 推測で物事を進めると良いことがないのでまずはlogを確認します。

するとserviceを立ち上げた時のログの中にERRORが見受けられました。

/var/log/mysqld.log

2016-11-29 11:08:39 1958 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2016-11-29 11:08:39 1958 [ERROR] Plugin 'InnoDB' init function returned error.
2016-11-29 11:08:39 1958 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2016-11-29 11:08:39 1958 [ERROR] Unknown/unsupported storage engine: InnoDB
2016-11-29 11:08:39 1958 [ERROR] Aborting

Cannot allocate memory for the buffer pool. よくあるやーつです。

実はGCPの環境については f1-micro(vCPU x 1、メモリ 0.6 GB) という要は最低スペックで作られているので、メモリも600Mちょっとしかなかったのです。

freeコマンドでSWAP領域を確認してみると

# free
             total       used       free     shared    buffers     cached
Mem:        604380     159344     445036        156       2260      19948
-/+ buffers/cache:     137136     467244
Swap:            0          0          0

案の定SWAP領域がありませんでした。

ということで、SWAP領域を作ります。

# dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 26.8912 s, 39.9 MB/s

次にSWAP領域を有効にします。

# mkswap /swapfile
# swapon /swapfile

これでMySQLが起動できるようになるはずです。