Rumah >pangkalan data >tutorial mysql >Mengapa MySQL Ranap dengan \'InnoDB: mmap gagal; errno 12\' pada Amazon EC2 Micro Instance saya?

Mengapa MySQL Ranap dengan \'InnoDB: mmap gagal; errno 12\' pada Amazon EC2 Micro Instance saya?

Barbara Streisand
Barbara Streisandasal
2024-12-03 10:12:14433semak imbas

Why is MySQL Crashing with

MySQL Ranap dengan "InnoDB: mmap failed; errno 12" pada Amazon EC2 Micro Instance

Ralat berlaku apabila MySQL cuba untuk memulakannya kumpulan penimbal dan menghadapi kegagalan peruntukan memori kerana sumber yang tidak mencukupi. Isu ini berleluasa pada kejadian mikro Amazon EC2, yang mempunyai kapasiti memori terhad (613MB).

Mesej Ralat:

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

Punca:

  • Memori tidak mencukupi: MySQL saiz kolam penimbal (512MB) melebihi memori yang tersedia pada tika mikro.
  • Tiada ruang swap: Tika mikro tidak mempunyai ruang swap didayakan secara lalai, yang diperlukan untuk mengembangkan maya ingatan.

Penyelesaian:

1. Dayakan Ruang Tukar:

  • Buat fail swap menggunakan dd if=/dev/zero of=/swapfile bs=1M count=1024.
  • Sediakan ruang swap menggunakan mkswap /swapfile.
  • Dayakan fail swap menggunakan swapon /swapfile.
  • Jadikan fail swap kekal dengan menambah /swapfile swap swap lalai 0 0 kepada /etc/fstab.

2. Tingkatkan Kapasiti Memori:

  • Pertimbangkan untuk meningkatkan kepada jenis contoh yang lebih besar dengan lebih banyak memori atau menggunakan Amazon RDS.

3. Semak Tetapan Memori MySQL:

  • Pastikan pembolehubah memori MySQL (cth., innodb_buffer_pool_size) ditetapkan dengan sewajarnya untuk sumber yang tersedia.

4. Kurangkan Beban MySQL:

  • Optimumkan pertanyaan MySQL untuk mengurangkan penggunaan sumber.
  • Pertimbangkan untuk menggunakan mekanisme caching untuk meminimumkan beban pangkalan data.

Contoh my.cnf Konfigurasi:

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

Dengan melaksanakan langkah-langkah ini, anda boleh menyelesaikan ralat "InnoDB: mmap failed; errno 12" dan memastikan MySQL berjalan lancar pada contoh mikro Amazon EC2 anda.

Atas ialah kandungan terperinci Mengapa MySQL Ranap dengan \'InnoDB: mmap gagal; errno 12\' pada Amazon EC2 Micro Instance saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn