WordPress Webサイトを含むAmazon ec2マイクロインスタンスがあります。昨日からmysqlデータベースがクラッシュしました。
[ec2-user@ip-xxx-xx-xx-xxx ~]$ sudo service mysqld status
mysqld dead but subsys locked
mysqldを再起動してみましたが、5分ごとに同じメッセージでクラッシュし続けます - 「データベース接続設定エラー」
これは私のデータベースログファイルが読む内容です。
160123 05:44:41 mysqld_safe mysqld restarted
160123 5:44:43 [Note] /usr/libexec/mysql55/mysqld (mysqld 5.5.46) starting as process 7928 ...
160123 5:44:44 [Note] Plugin 'FEDERATED' is disabled.
160123 5:44:46 InnoDB: The InnoDB memory heap is disabled
160123 5:44:46 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160123 5:44:46 InnoDB: Compressed tables use zlib 1.2.8
160123 5:44:46 InnoDB: Using Linux native AIO
160123 5:44:46 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
160123 5:44:46 InnoDB: Completed initialization of buffer pool
160123 5:44:46 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160123 5:44:46 [ERROR] Plugin 'InnoDB' init function returned error.
160123 5:44:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160123 5:44:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160123 5:44:46 [ERROR] Aborting
160123 5:44:46 [Note] /usr/libexec/mysql55/mysqld: Shutdown complete
160123 05:44:46 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
この問題に対する解決策をGoogleで検索したときに私が見つけた一般的な解決策は、スワップmysqld dead but subsys locked
ファイルを作成することでした。私はほとんどのソリューションが提案したように正確に行いましたが、UNIXに慣れていないので、私がやっていることが正しいかどうかわかりません。
Wunterが要求したように、私の質問を結果に更新してくださいfree
。 1MBのスワップスペースがあります。
[ec2-user@ip-xx-xx-xx-xxx /]$ free
total used free shared buffers cached
Mem: 1019452 613820 405632 76 19124 64348
-/+ buffers/cache: 530348 489104
Swap: 1048572 46604 1001968
それともこの問題に対する他の解決策はありますか?助けてください。
ベストアンサー1
明確にするために、メッセージmysqld dead but subsys locked
は次のとおりです。兆候、一つでもない理由。つまり、mysqldがクラッシュし(「死」)、initシステムの状態データベースに古い情報がある(「しかしsubsysがロックされている」)ことを意味します。それはあなたに言わないでしょうなぜ状況が崩れました。
問題は mysql サーバーログで説明されています。
160123 5:44:46 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
160123 5:44:46 InnoDB: Completed initialization of buffer pool
160123 5:44:46 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160123 5:44:46 [ERROR] Plugin 'InnoDB' init function returned error.
160123 5:44:46 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160123 5:44:46 [ERROR] Unknown/unsupported storage engine: InnoDB
160123 5:44:46 [ERROR] Aborting
mmap()
これは、InnoDB(ストレージエンジン)が初期化しようとしたときにその領域に128 M RAMを割り当てようとしましたが失敗したことを意味します。
スワップスペースを追加したと記載されています。エラーメッセージを考えると、これは正しい解決策であるに違いありませんが、おそらく十分なスワップスペースを追加していないため、うまくいかないようです。
スワップスペースのサイズを増やしてください。それでも問題が解決しない場合は、を実行してfree
質問を更新して、そのコマンドの出力を公開してください。