MySQL 準備好的語句需要重新準備:排除「Prepared statements need to be re-preparation」錯誤
遇到「Prepared statements時」 MySQL 中出現「需要重新準備」錯誤,表示表格的伺服器版本和客戶端版本不一致定義。通常,將涉及 MySQL 預存程序的程式碼遷移到託管伺服器後會出現此問題。
錯誤原因:
發生錯誤是因為 MySQL 維護表的快取元數據,用於透過減少為每個查詢檢索列資訊的需要來最佳化效能。但是,如果本機電腦和託管伺服器上的版本之間的表結構發生變化,則快取的元資料就會過時,並且該語句將無法再成功執行。
潛在解決方案:
根據 MySQL bug #42041 的建議,增加「table_definition_cache」變數的值可以解決這個問題。此變數指定 MySQL 將快取的表的數量。透過增加快取大小,您可以減少快取的表定義與實際表定義之間出現差異的可能性。
說明:
SET GLOBAL table_definition_cache = <new_value>;
參考:
對於更多關於MySQL中語句緩存的信息,請參考MySQL官方文檔: https://dev.mysql.com/ doc/refman/8.0/en/statement-cache.html
以上是為什麼我的 MySQL 預準備語句需要重新準備?的詳細內容。更多資訊請關注PHP中文網其他相關文章!