MySQLが起動しない件

新サービスの開発に忙しくて、ぜんぜん書けてなかったから、久々にブログ書いてみる。

その新サービスで使ってるサーバが朝方ダウンしてて焦った話。

MySQLサーバが停止しておりましたーー うあぁーー

こりゃ急いで対応しなきゃ。ポカリ飲まなきゃ。

とりあえず、MySQL起動コマンドを怖るおそる実行。

・・・

やっぱ起動しないかーーー!

うぬぬ。

そもそもなんでMySQL止まってんの。

mysqld.logを確認。

2017-11-23 07:06:49 3015 [Note] InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
2017-11-23 07:06:49 3015 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2017-11-23 07:06:49 3015 [ERROR] Plugin ‘InnoDB’ init function returned error.
2017-11-23 07:06:49 3015 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
2017-11-23 07:06:49 3015 [ERROR] Unknown/unsupported storage engine: InnoDB
2017-11-23 07:06:49 3015 [ERROR] Aborting

なんで今日の朝方、再起動したの?うーん・・・
ん・・・?そういえばAWSから先日サーバー再起動するとか通知来てたな・・・
それってひょっとして今日か?そゆこと?

それでサーバ再起動後のMySQL自動起動が走ったのか。

原因はなんとなく予測できた。

よし。

お次はログから起動できない理由を確認。

最初の1行目で出ているInnoDBインスタンスのメモリ確保が失敗して起動できない模様。

うーーん。

メモリエラー?そんなバカな。
オレのMySQLがそんなに弱いわけがない。

っていうか、今までふつうに起動できてたのにいったい・・・?

データ量増加のせいか?
まあEC2のt2.nano(メモリ512M)だし・・・。
とりま、インスタンスのグレード上げるか・・・と思いつつなんかいい手はないかとネット検索。

Qiitaで良記事発見。
スワップ領域を作成するといいらしい。

おお。

そういやスワップ領域作ってないや。
サーバ建てたらスワップ領域作るの基本でした。すんません。

すぐさま 1G のスワップ領域を作成してMySQL再起動。

無事に起動。

Yeahーーー! 空前絶後にー! 疾風怒涛にー! MySQL起動ぉぉー!

これでサービスも元どおりと♪

幸い朝方だったから利用者も少なかった模様。

ふぅ。とりあえずこれで様子見です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です