[英]MySQL stored procedure on a read replica with PHP PDO
我已經打開了針對MySQL的錯誤報告http://bugs.mysql.com/bug.php?id=70793&thanks=4 。 這里有一個代碼示例,用於演示此錯誤。 我發現還有一個解決方法,它包含在錯誤報告中。 此解決方法適用於PHP和控制台
我在使用存儲過程和PHP PDO時遇到了一個奇怪的問題。
我不允許發布存儲過程的主體,但我可以提供以下信息。
我的問題是我無法從PHP PDO調用此存儲過程,我收到此錯誤
SQLSTATE [HY000]:常規錯誤:1290 MySQL服務器使用--read-only選項運行,因此無法執行此語句
這完全沒有意義,因為只要我不是用PHP做的話, 我就可以在只讀副本上調用它。
任何人都可以對這里可能發生的事情有所了解嗎?
編輯更多奇怪的信息
我可以讓控制台會話失敗,但我也能讓它成功。 這取決於是否已創建存儲過程使用的臨時表。 因此,讓我解釋一下我的工作和失敗的用例
失敗
The MySQL server is running with the --read-only option so it cannot execute this statement
通過
更奇怪的是,我絕對會將該臨時表放在存儲過程中並重新創建它(如果存在的話)。
我相當肯定在這一點上我們正在研究一個MySQL錯誤
您是否嘗試將TEMPORARY關鍵字添加到DROP TABLE命令 ?
TEMPORARY關鍵字具有以下效果:
--read-only
僅適用於非root用戶或非副本用戶。 因此,來自控制台的ROOT仍然可以做任何事情,但不能做PHP用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.