MySQL 错误疑难解答:“准备好的语句需要重新准备”
迁移具有修改的 PHP 代码和 MySQL 存储过程的网站时从本地环境到托管服务器,持续存在的致命错误“‘准备好的语句需要重新准备’”一直困扰着网站的运行。
错误原因:
根本问题可能与 MySQL bug #42041 有关,它会影响准备好的语句缓存。当语句缓存不足时,服务器重启后可能无法重用prepared statements,从而导致错误。
解决方案:
解决方案在于调整服务器的table_definition_cache 变量。该变量设置其定义缓存在内存中的表的最大数量。通过增加其值,您可以容纳更多缓存的准备好的语句,并有可能解决错误。
实现:
要修改 table_definition_cache 值,请按照以下步骤操作:
SHOW VARIABLES LIKE 'table_definition_cache';
SET GLOBAL table_definition_cache = <new-value>;
其他资源:
有关预备语句缓存的更多信息,请参阅官方 MySQL 文档:
https://dev.mysql.com/doc/refman/8.0 /en/statement-caching.html
以上是为什么我的网站在迁移后抛出'准备好的语句需要重新准备”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!