处理 MySQL 预准备语句重新准备错误
将 PHP 站点迁移到托管服务器时,您可能会遇到令人困惑的“Prepared声明需要重新准备”错误。在代码中实现 MySQL 存储过程后,通常会发生这种情况。
此问题的根源可能在于已知的 MySQL 错误 (#42041)。为了解决这个问题,您需要增加 table_definition_cache 参数的值。
MySQL 中的语句缓存
为了优化性能,MySQL 缓存有关表的某些信息,包括它们的表定义。 table_definition_cache 参数控制该缓存的大小。当缓存太小时,可能会导致“Prepared statements need to be re-prepared”错误,特别是当表频繁更改时。
增加 table_definition_cache 值
要修复该错误,您需要增加 MySQL 配置文件(通常名为 my.cnf)中 table_definition_cache 的值。找到 [mysqld] 部分并添加以下行:
table_definition_cache=1000
table_definition_cache 的最佳值取决于您的具体使用模式。较高的值允许 MySQL 缓存更多的表定义,从而减少重新准备语句的可能性。
进行此更改后,重新启动 MySQL 服务器以使设置生效。这应该可以消除托管服务器上的“准备好的语句需要重新准备”错误。
以上是如何解决MySQL中的'Prepared statements need to be re-prepared”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!