ホームページ > データベース > mysql チュートリアル > マイクロ EC2 インスタンス上の MySQL サーバーが「InnoDB: mmap (x bytes) failed; errno 12」でクラッシュするのはなぜですか?どうすれば修正できますか?

マイクロ EC2 インスタンス上の MySQL サーバーが「InnoDB: mmap (x bytes) failed; errno 12」でクラッシュするのはなぜですか?どうすれば修正できますか?

Mary-Kate Olsen
リリース: 2024-11-30 21:17:12
オリジナル
739 人が閲覧しました

Why is my MySQL server on a micro EC2 instance crashing with

「Amazon EC2、InnoDB: mmap (x bytes) failed; errno 12 のため、mysql の開始が中止されています。」

このシナリオでは、マイクロ EC2 インスタンス上の MySQL サーバー「InnoDB: mmap (x bytes) failed; errno 12」というエラーで繰り返しクラッシュします。サーバーを再起動しようとしても、問題は解決しません。 MySQL ログを調べると、メモリ割り当てが不十分なために InnoDB バッファ プールの初期化が失敗していることが明らかになります。

問題の理解

InnoDB バッファ プールは、最適化するために頻繁にアクセスされるデータをメモリに保存します。データベース操作のパフォーマンス。ただし、この場合、マイクロ インスタンスのメモリ容量が限られているため、バッファ プールに十分なスペースを割り当てることができません。その結果、InnoDB は初期化に失敗し、MySQL サーバーはエラー メッセージを表示して終了します。

スワップ スペースの構成

この問題を解決するには、基本的に追加として機能するスワップ スペースを作成することをお勧めします。仮想メモリ。これにより、オペレーティング システムが未使用のディスク領域を RAM として利用できるようになり、InnoDB などの重要な操作に使用できるメモリが増加します。

スワップ スペースの作成

スワップ スペースの作成には、次の手順が含まれます。

  1. スワップとして機能する新しいファイルを作成しますスペース:
dd if=/dev/zero of=/swapfile bs=1M count=1024
ログイン後にコピー
  1. 新しく作成したファイルをスワップ ファイルとしてフォーマットします:
mkswap /swapfile
ログイン後にコピー
  1. スワップ ファイルをアクティブ化します:
swapon /swapfile
ログイン後にコピー
  1. スワップ ファイルが再起動後も持続する場合は、/etc/fstab ファイルを編集して次の行を追加します。
/swapfile swap swap defaults 0 0
ログイン後にコピー

代替解決策: RDS

スワップ スペースを作成しても問題が解決されない場合は、この問題を解決するには、別の解決策として Amazon RDS (リレーショナル データベース サービス) を使用します。 RDS は、メモリとストレージ リソースが保証された専用のデータベース インスタンスを提供する AWS のマネージド データベース サービスです。データベースを RDS インスタンスに移行することで、マイクロ インスタンスでのメモリ割り当ての制限の問題を回避できます。

以上がマイクロ EC2 インスタンス上の MySQL サーバーが「InnoDB: mmap (x bytes) failed; errno 12」でクラッシュするのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート