Maison  >  Article  >  développement back-end  >  Pourquoi mon site Web génère-t-il une erreur « La déclaration préparée doit être re-préparée » après la migration ?

Pourquoi mon site Web génère-t-il une erreur « La déclaration préparée doit être re-préparée » après la migration ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-27 08:49:301008parcourir

Why Does My Website Throw a

Dépannage de l'erreur MySQL : « L'instruction préparée doit être re-préparée »

Lors de la migration d'un site Web avec du code PHP modifié et des procédures stockées MySQL d'un environnement local à un serveur d'hébergement, une erreur fatale persistante, "'L'instruction préparée doit être re-préparée'", a perturbé le fonctionnement du site.

Cause de l'erreur :

Le problème sous-jacent pourrait être lié au bug MySQL n°42041, qui affecte la mise en cache des instructions préparées. Lorsque la mise en cache des instructions est insuffisante, le serveur peut ne pas parvenir à réutiliser les instructions préparées après un redémarrage, ce qui entraîne l'erreur.

Solution :

La solution réside dans l'ajustement du serveur table_definition_cache variable. Cette variable définit le nombre maximum de tables dont les définitions sont mises en cache en mémoire. En augmentant sa valeur, vous pouvez accueillir davantage d'instructions préparées mises en cache et potentiellement résoudre l'erreur.

Mise en œuvre :

Pour modifier la valeur table_definition_cache, suivez ces étapes :

  1. Accédez à votre serveur MySQL à l'aide d'un outil tel que MySQL Workbench ou de l'invite de commande.
  2. Connectez-vous à la base de données et exécutez la commande suivante pour vérifier la valeur actuelle :
SHOW VARIABLES LIKE 'table_definition_cache';
  1. Définissez une valeur plus élevée pour table_definition_cache en utilisant la syntaxe suivante :
SET GLOBAL table_definition_cache = <new-value>;
  1. Redémarrez le serveur MySQL pour appliquer les modifications.

Ressource supplémentaire :

Pour plus d'informations sur la mise en cache des instructions préparées, reportez-vous à la documentation officielle de MySQL :
https://dev.mysql.com/doc/refman/8.0 /fr/statement-caching.html

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!

Déclaration:
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