首页 >后端开发 >php教程 >为什么我的网站在迁移后抛出'准备好的语句需要重新准备”错误?

为什么我的网站在迁移后抛出'准备好的语句需要重新准备”错误?

Linda Hamilton
Linda Hamilton原创
2024-10-27 08:49:301071浏览

Why Does My Website Throw a

MySQL 错误疑难解答:“准备好的语句需要重新准备”

迁移具有修改的 PHP 代码和 MySQL 存储过程的网站时从本地环境到托管服务器,持续存在的致命错误“‘准备好的语句需要重新准备’”一直困扰着网站的运行。

错误原因:

根本问题可能与 MySQL bug #42041 有关,它会影响准备好的语句缓存。当语句缓存不足时,服务器重启后可能无法重用prepared statements,从而导致错误。

解决方案:

解决方案在于调整服务器的table_definition_cache 变量。该变量设置其定义缓存在内存中的表的最大数量。通过增加其值,您可以容纳更多缓存的准备好的语句,并有可能解决错误。

实现:

要修改 table_definition_cache 值,请按照以下步骤操作:

  1. 使用 MySQL Workbench 等工具或命令提示符访问您的 MySQL 服务器。
  2. 连接到数据库并运行以下命令来检查当前值:
SHOW VARIABLES LIKE 'table_definition_cache';
  1. 使用以下语法为 table_definition_cache 设置更高的值:
SET GLOBAL table_definition_cache = <new-value>;
  1. 重新启动 MySQL 服务器以应用更改。

其他资源:

有关预备语句缓存的更多信息,请参阅官方 MySQL 文档:
https://dev.mysql.com/doc/refman/8.0 /en/statement-caching.html

以上是为什么我的网站在迁移后抛出'准备好的语句需要重新准备”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn