Maison > base de données > tutoriel mysql > Pourquoi MySQL plante-t-il avec « InnoDB : mmap failed ; errno 12 » sur ma micro-instance Amazon EC2 ?

Pourquoi MySQL plante-t-il avec « InnoDB : mmap failed ; errno 12 » sur ma micro-instance Amazon EC2 ?

Barbara Streisand
Libérer: 2024-12-03 10:12:14
original
434 Les gens l'ont consulté

Why is MySQL Crashing with

MySQL plante avec "InnoDB : mmap failed; errno 12" sur la micro-instance Amazon EC2

Une erreur se produit lorsque MySQL tente d'initialiser son pool de mémoire tampon et rencontre un échec d’allocation de mémoire en raison de ressources insuffisantes. Ce problème est répandu sur les micro-instances Amazon EC2, qui ont une capacité de mémoire limitée (613 Mo).

Message d'erreur :

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
Copier après la connexion

Causes :

  • Mémoire insuffisante : Pool de tampons MySQL La taille (512 Mo) dépasse la mémoire disponible sur la micro-instance.
  • Pas d'espace de swap : Les micro-instances n'ont pas d'espace de swap activé par défaut, ce qui est nécessaire pour étendre la mémoire virtuelle.

Résolution :

1. Activer l'espace d'échange :

  • Créez un fichier d'échange à l'aide de dd if=/dev/zero of=/swapfile bs=1M count=1024.
  • Configurez l'espace d'échange en utilisant mkswap /swapfile.
  • Activez le fichier d'échange en utilisant swapon /swapfile.
  • Rendre le fichier d'échange permanent en ajoutant /swapfile swap swap defaults 0 0 à /etc/fstab.

2. Augmentez la capacité de mémoire :

  • Envisagez de passer à un type d'instance plus grand avec plus de mémoire ou d'utiliser Amazon RDS.

3. Vérifiez les paramètres de mémoire MySQL :

  • Assurez-vous que les variables de mémoire MySQL (par exemple, innodb_buffer_pool_size) sont définies de manière appropriée pour les ressources disponibles.

4. Réduisez la charge MySQL :

  • Optimisez les requêtes MySQL pour réduire la consommation de ressources.
  • Envisagez d'utiliser des mécanismes de mise en cache pour minimiser la charge de la base de données.

Exemple de configuration my.cnf :

[mysqld]
innodb_buffer_pool_size = 256M  # Adjust based on available memory
Copier après la connexion

En mettant en œuvre ces étapes, vous peut résoudre l'erreur « InnoDB : mmap failed ; errno 12 » et garantir que MySQL fonctionne correctement sur votre micro-instance Amazon EC2.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal