Maison > base de données > tutoriel mysql > Pourquoi ma déclaration préparée par MySQL doit-elle être repréparée ?

Pourquoi ma déclaration préparée par MySQL doit-elle être repréparée ?

Susan Sarandon
Libérer: 2024-11-26 17:03:11
original
680 Les gens l'ont consulté

Why Does My MySQL Prepared Statement Need Re-preparation?

L'instruction préparée MySQL nécessite une nouvelle préparation : dépannage de l'erreur « L'instruction préparée doit être re-préparée »

Lorsque vous rencontrez l'erreur « Instruction préparée doit être re-préparé" dans MySQL, cela indique une incohérence entre les versions serveur et client d'une définition de table. Généralement, ce problème survient après la migration du code impliquant des procédures stockées MySQL vers un serveur d'hébergement.

Cause de l'erreur :

L'erreur se produit car MySQL conserve un cache de table les métadonnées, qui sont utilisées pour optimiser les performances en réduisant le besoin de récupérer les informations de colonne pour chaque requête. Cependant, si la structure de la table change entre les versions sur la machine locale et sur le serveur d'hébergement, les métadonnées mises en cache deviennent obsolètes et l'instruction ne peut plus être exécutée avec succès.

Solution potentielle :

Comme suggéré par le bug MySQL n°42041, augmenter la valeur de la variable "table_definition_cache" peut résoudre le problème. Cette variable spécifie le nombre de tables que MySQL mettra en cache. En augmentant la taille du cache, vous pouvez réduire le risque de divergences entre les définitions de table mises en cache et réelles.

Instructions :

  1. Connectez-vous au serveur MySQL en utilisant un outil tel que phpMyAdmin ou la ligne de commande MySQL.
  2. Exécutez la commande suivante pour augmenter le "table_definition_cache" value :
SET GLOBAL table_definition_cache = <new_value>;
Copier après la connexion
  1. Remplacer avec une valeur plus grande, telle que 1024 ou 2048.
  2. Redémarrez le serveur MySQL pour appliquer les modifications.

Référence :

Pour Pour plus d'informations sur la mise en cache des instructions dans MySQL, reportez-vous à la documentation officielle de MySQL : https://dev.mysql.com/doc/refman/8.0/en/statement-cache.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!

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