首頁  >  文章  >  後端開發  >  為什麼我的網站在遷移後拋出「準備好的語句需要重新準備」錯誤?

為什麼我的網站在遷移後拋出「準備好的語句需要重新準備」錯誤?

Linda Hamilton
Linda Hamilton原創
2024-10-27 08:49:301008瀏覽

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