ホームページ >データベース >mysql チュートリアル >Amazon EC2 マイクロ インスタンスで MySQL が「InnoDB: mmap failed; errno 12」でクラッシュするのはなぜですか?

Amazon EC2 マイクロ インスタンスで MySQL が「InnoDB: mmap failed; errno 12」でクラッシュするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-03 10:12:14397ブラウズ

Why is MySQL Crashing with

Amazon EC2 マイクロ インスタンスで MySQL が「InnoDB: mmap failed; errno 12」でクラッシュする

MySQL がインスタンスを初期化しようとするとエラーが発生しますバッファ プールでリソース不足が原因でメモリ割り当てエラーが発生します。この問題は、メモリ容量 (613MB) が限られている Amazon EC2 マイクロ インスタンスで蔓延しています。

エラー メッセージ:

InnoDB: mmap(549453824 bytes) failed; errno 12
InnoDB: Completed initialization of buffer pool
InnoDB: Fatal error: cannot allocate memory for the buffer pool
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting

原因:

  • 不十分メモリ: MySQL のバッファ プール サイズ (512MB) がマイクロ インスタンスで利用可能なメモリを超えています。
  • スワップ スペースなし: マイクロ インスタンスにはデフォルトで有効になっているスワップ スペースがありません。仮想を拡張するために必要メモリ。

解決策:

1。スワップ スペースを有効にする:

  • dd if=/dev/zero of=/swapfile bs=1M count=1024 を使用してスワップ ファイルを作成します。
  • スワップ スペースを設定しますusing mkswap /swapfile.
  • 次を使用してスワップ ファイルを有効にしますswapon /swapfile.
  • /swapfile swap swap defaults 0 0 を /etc/fstab.

2 に追加して、スワップ ファイルを永続的にします。メモリ容量を増やす:

  • より多くのメモリを備えたより大きなインスタンス タイプにアップグレードするか、Amazon RDS を利用することを検討してください。

3. MySQL のメモリ設定を確認します:

  • MySQL のメモリ変数 (例: innodb_buffer_pool_size) が利用可能なリソースに対して適切に設定されていることを確認します。

4. MySQL 負荷の削減:

  • MySQL クエリを最適化してリソース消費を削減します。
  • データベース負荷を最小限に抑えるためにキャッシュ メカニズムの使用を検討します。

my.cnfの例設定:

[mysqld]
innodb_buffer_pool_size = 256M  # Adjust based on available memory

これらの手順を実装すると、「InnoDB: mmap failed; errno 12」エラーを解決でき、Amazon EC2 マイクロ インスタンスで MySQL がスムーズに実行されるようになります。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。