Maison > base de données > tutoriel mysql > Pourquoi mon MySQL sur Amazon EC2 Micro Instance abandonne-t-il le démarrage avec l'erreur 12 (mémoire insuffisante) ?

Pourquoi mon MySQL sur Amazon EC2 Micro Instance abandonne-t-il le démarrage avec l'erreur 12 (mémoire insuffisante) ?

Patricia Arquette
Libérer: 2024-11-26 18:57:09
original
524 Les gens l'ont consulté

Why Does My MySQL on Amazon EC2 Micro Instance Abort Startup with Error 12 (Insufficient Memory)?

Amazon EC2, MySQL abandonne le démarrage en raison d'une mémoire insuffisante (erreur 12)

Lors de l'exécution de MySQL sur une micro-instance Amazon EC2, vous pouvez rencontrez l'erreur "InnoDB : mmap (x octets) a échoué ; errno 12." Cette erreur indique qu'InnoDB, le moteur de stockage utilisé par MySQL, n'est pas en mesure d'allouer la mémoire nécessaire au pool de mémoire tampon en raison d'une mémoire système insuffisante.

Pour résoudre ce problème, vous pouvez suivre ces étapes :

  1. Ajouter un espace d'échange : Les micro-instances n'ont pas d'espace d'échange dédié par défaut, ce qui peut être surmonté en créant un fichier d'échange. Exécutez les commandes suivantes :

    • dd if=/dev/zero of=/swapfile bs=1M count=1024
    • mkswap /swapfile
    • swapon /swapfile
  2. Augmentation Taille du pool de tampons : Pour allouer plus de mémoire au pool de tampons, augmentez le paramètre innodb_buffer_pool_size dans votre fichier de configuration MySQL (my.cnf). Assurez-vous que la valeur se situe dans la plage de mémoire disponible.
  3. Utilisez le service RDS : Pour les applications critiques, envisagez d'utiliser Amazon Relational Database Service (RDS), un service de base de données géré qui gère la mémoire. allocation et mise à l'échelle automatiquement.

Exemple de configuration

Ce qui suit est un exemple de configuration my.cnf avec une taille de pool de mémoire tampon et un espace d'échange accrus :

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
innodb_buffer_pool_size=1G

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Copier après la connexion

Remarque : la valeur spécifique de innodb_buffer_pool_size doit être ajustée en fonction des besoins en mémoire de votre application. Il ne doit pas dépasser la mémoire système disponible.

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