Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql Kesalahan fatal:tidak dapat mengalokasikan memori untuk kumpulan buffer

TLDR;

Mysql tidak dapat memulai ulang karena kehabisan memori, periksa apakah Anda telah mengkonfigurasi swapfile yang sesuai.

Tidak membantu? Jika itu bukan masalah Anda, pertanyaan yang lebih memenuhi syarat untuk melanjutkan penelitian adalah:

Latar Belakang

Saya mengalami masalah ini pada sistem pertama yang saya atur di EC2, ditandai dengan situs wordpress yang dihosting di sana kadang-kadang turun dengan "Kesalahan saat membuat koneksi basis data".

Log menunjukkan kesalahan yang sama dengan yang diposting OP. Pembacaan kesalahan saya (stempel waktu dihapus) adalah:

  • Kesalahan kehabisan memori: InnoDB: Fatal error: cannot allocate memory for the buffer pool
  • InnoDB tidak dapat memulai tanpa memori yang cukup [ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported storage engine: InnoDB [ERROR] Aborting
  • mysqld dimatikan, yang dalam konteks ini, benar-benar berarti gagal memulai ulang! [Note] /usr/sbin/mysqld: Shutdown complete

Memeriksa /var/log/syslog dan mencari mysql hasil:

Out of memory: Kill process 15452 (mysqld) score 93 or sacrifice child
Killed process 15452 (mysqld) total-vm:888672kB, anon-rss:56252kB, file-rss:0kB
init: mysql main process (15452) killed by KILL signal
init: mysql main process ended, respawning
type=1400 audit(1443812767.391:30): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=21984 comm="apparmor_parser"
init: mysql main process (21996) terminated with status 1
init: mysql main process ended, respawning
init: mysql post-start process (21997) terminated with status 1
<repeated>

Catatan:Anda mungkin harus melakukan gunzip dan menelusuri log yang diarsipkan jika kesalahan terjadi sebelum log diputar oleh cron.

Solusi

Dalam kasus saya, masalah mendasarnya adalah saya lalai mengonfigurasi swapfile.

Anda dapat memeriksa untuk melihat apakah Anda telah mengonfigurasinya dengan menjalankan free -m .

total used free shared buffers cached Mem: 604340 587364 16976 0 29260 72280 -/+ buffers/cache: 485824 118516 Swap: 0 0 0

Pada contoh di atas, Swap:0 menunjukkan tidak ada file swap.

Tutorial cara menyiapkannya:

Perhatikan bahwa lebih besar belum tentu lebih baik! Dari panduan Ubuntu :

Mengenai jawaban lain di sini...

The InnoDB memory heap is disabled

Terima kasih kepada:Komentar Ruben Schade

[Note] Plugin 'FEDERATED' is disabled.

Lihat:https://stackoverflow.com/a/16470822/2586761



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengubah MySQL ke MS Access

  2. Kunci asing MySQL pada diri sendiri

  3. Apakah lebih baik menggunakan nilai kosong sebagai '' atau sebagai NULL?

  4. Mengakses baris yang terakhir dibuat di PHP/MySQL

  5. Bagaimana saya bisa menggunakan objek PDO dengan benar untuk kueri SELECT berparameter?