[解決済み] Amazon EC2, InnoDB: mmap (x bytes) failed; errno 12 のため mysql の起動が中断されました。
質問
私は マイクロ インスタンスサーバをEC2ベースで この
mysqlサーバーが頻繁に失敗し、3回目にmysqlサーバーが消えました。ログには
120423 09:13:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
120423 09:14:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
120423 9:14:27 [Note] Plugin 'FEDERATED' is disabled.
120423 9:14:27 InnoDB: The InnoDB memory heap is disabled
120423 9:14:27 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120423 9:14:27 InnoDB: Compressed tables use zlib 1.2.3
120423 9:14:27 InnoDB: Using Linux native AIO
120423 9:14:27 InnoDB: Initializing buffer pool, size = 512.0M
InnoDB: mmap(549453824 bytes) failed; errno 12
120423 9:14:27 InnoDB: Completed initialization of buffer pool
120423 9:14:27 InnoDB: Fatal error: cannot allocate memory for the buffer pool
120423 9:14:27 [ERROR] Plugin 'InnoDB' init function returned error.
120423 9:14:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120423 9:14:27 [ERROR] Unknown/unsupported storage engine: InnoDB
120423 9:14:27 [ERROR] Aborting
本当は
failed; errno 12
? そして、どのように私はより多くのスペース/メモリまたはこれを修正するために必要なものを与えることができました。
私は毎回、システム全体を再起動し、すべてのログを削除し、mysqlサーバーを再起動することによってこれを修正します。しかし、私は何かが私の構成に間違っていることを知っています。
また、私の `my.cnf' は以下のようなものです。
[mysqld]
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under different user or group,
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# max_allowed_packet=500M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_buffer_pool_size = 512M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
どのように解決するのですか?
RDSを使わずにマイクロインスタンスでwordpressを動かそうとしたら、同じ問題に遭遇しました。
Swapページを追加することで、私の場合は問題が解決しました。
以下の手順でスワップスペースを設定することができます。
それでもうまくいかない場合は、RDS サービスの利用を検討してください。
===============================================
記録のため、ブログの内容をコピーしました。クレジットはブログ作者へ pmoubed :
Amazon EC2 マイクロインスタンススワップスペース - Linux
私は、Amazon EC2 Linux Microインスタンスを持っています。マイクロインスタンスは613MBのメモリしか持っていないので、MySQLは時々クラッシュしていました。MySQL、マイクロインスタンス、メモリ管理について長い間検索した結果、マイクロインスタンスにはデフォルトのスワップ領域がないことがわかりました。もし、クラッシュを回避したいのであれば、マイクロインスタンスにスワップ領域を設定する必要があるかもしれません。実際、スワップを有効にした方がパフォーマンス的には良いようです。
以下は、マイクロインスタンスにスワップ領域を作成する方法です。AWSアカウントをお持ちで、マイクロインスタンスが動作していることを想定しています。
-
実行
dd if=/dev/zero of=/swapfile bs=1M count=1024
-
実行
mkswap /swapfile
-
実行
swapon /swapfile
-
この行を追加する
/swapfile swap swap defaults 0 0
を/etc/fstab
ステップ 4 は、再起動ごとにスワップ ファイルを自動的に有効にする場合に必要です。
スワップスペースに関連する便利なコマンドを紹介します。
$ swapon -s
$ free -k
$ swapoff -a
$ swapon -a
参考文献
関連
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySQLのLike演算子に関する詳細
-
MySQLのNULLについて解説した記事
-
MySql認証ベースのvsftpd仮想ユーザー
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
Mysqlの使用中に発生したエラーの一部
-
[解決済み] SQLを使用してSUMとSUBTRACTを行うには?
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み】「Error: MySQLが予期せずシャットダウンしました" を解決するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLのNULLについて解説した記事
-
MySQLによる既存テーブルのパーティショニングの実装
-
[解決済み] datetimeの挿入時に文字列から日付や時刻を変換すると、変換に失敗する
-
[解決済み】ValueError: 値の長さがインデックスの長さと一致しない|Pandas DataFrame.unique()
-
CMakeエラー。ソースディレクトリ "/xxx/mysql-5.6.21" に CMakeLists.txt がないようです。
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み】EC2インスタンスにスワップを追加する方法とは?