background success stories

MySQL Error Code: 1114 The table ‘/var/lib/mysql/tmp/#sql*****’ is full

Il convient de faire attention à l’introduction d’un nouveau paramètre sous la version de Mysql 8.0.16 et prochainement obsolète en 8.0.25 : temptable_use_mmap.

Bug MySQL référencé : Bug #28944457 https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-16.html#mysqld-8-0-16-feature

Cette variable définit si le moteur de stockage TempTable alloue de l’espace pour les tables temporaires internes en mémoire en tant que fichiers temporaires mappés en mémoire lorsque la quantité de mémoire occupée par le moteur de stockage TempTable dépasse la limite définie par la variable « temptable_max_ram ».

Temptable_max_ram définit quant à elle la quantité maximale de mémoire qui peut être occupée par le moteur de stockage TempTable avant de commencer à stocker des données sur le disque. La valeur par défaut est 1GO.

Plusieurs solutions s’offrent à vous pour éviter ce fameux message d’erreur lors de l’exécution d’une requête : Error Code: 1114 The table ‘/var/lib/mysql/tmp/#sql*’ is full

  • Augmenter la valeur du paramètre « temptable_max_ram » de façon itérative
  • Désactiver le paramètre « temptable_use_mmap », cependant, lorsqu’il est désactivé, le moteur de stockage TempTable utilise à la place les tables temporaires internes InnoDB sur disque
  • Upgrader dans la version 8.0.25