Mysql

MariaDB InnoDB 不會在超時時回滾

  • January 4, 2021

我有ff。按此順序的範例查詢:

  1. 開始交易
  2. 更新
  3. 插入
  4. 犯罪

查詢 #2 超時,但我注意到查詢 #3 沒有回滾。

我還嘗試通過驗證(查詢表)在我送出之前是否通過更新來手動回滾。但是當我這樣做時,我得到一個明確的:General error: 2006 MySQL server has gone away錯誤。

我的問題:

  1. 我已innodb_rollback_on_timeout設置為ON,查詢#3 不應該回滾嗎?
  2. 由於我什至不能手動回滾,我有什麼選擇?

注意:這是在 mariadb-10.4.17

什麼是客戶?它是否打開了“自動重新連接”?把它關掉。

我認為正在發生的事情:

  1. 呱呱叫(以UPDATE任何方式)並回滾。
  2. 重新建立連接,可能使用autocommit.
  3. INSERT執行成功並自動送出。
  4. COMMIT默默地忽略。

在每個SQL 語句之後進行錯誤檢查。

引用自:https://dba.stackexchange.com/questions/282512