ホームページ >データベース >mysql チュートリアル >マイクロ EC2 インスタンス上の MySQL サーバーが「InnoDB: mmap (x bytes) failed; errno 12」でクラッシュするのはなぜですか?どうすれば修正できますか?
このシナリオでは、マイクロ EC2 インスタンス上の MySQL サーバー「InnoDB: mmap (x bytes) failed; errno 12」というエラーで繰り返しクラッシュします。サーバーを再起動しようとしても、問題は解決しません。 MySQL ログを調べると、メモリ割り当てが不十分なために InnoDB バッファ プールの初期化が失敗していることが明らかになります。
InnoDB バッファ プールは、最適化するために頻繁にアクセスされるデータをメモリに保存します。データベース操作のパフォーマンス。ただし、この場合、マイクロ インスタンスのメモリ容量が限られているため、バッファ プールに十分なスペースを割り当てることができません。その結果、InnoDB は初期化に失敗し、MySQL サーバーはエラー メッセージを表示して終了します。
この問題を解決するには、基本的に追加として機能するスワップ スペースを作成することをお勧めします。仮想メモリ。これにより、オペレーティング システムが未使用のディスク領域を RAM として利用できるようになり、InnoDB などの重要な操作に使用できるメモリが増加します。
スワップ スペースの作成には、次の手順が含まれます。
dd if=/dev/zero of=/swapfile bs=1M count=1024
mkswap /swapfile
swapon /swapfile
/swapfile swap swap defaults 0 0
スワップ スペースを作成しても問題が解決されない場合は、この問題を解決するには、別の解決策として Amazon RDS (リレーショナル データベース サービス) を使用します。 RDS は、メモリとストレージ リソースが保証された専用のデータベース インスタンスを提供する AWS のマネージド データベース サービスです。データベースを RDS インスタンスに移行することで、マイクロ インスタンスでのメモリ割り当ての制限の問題を回避できます。
以上がマイクロ EC2 インスタンス上の MySQL サーバーが「InnoDB: mmap (x bytes) failed; errno 12」でクラッシュするのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。