程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql錯誤處理之ERROR 1786 (HY000)

mysql錯誤處理之ERROR 1786 (HY000)

編輯:關於MYSQL數據庫

ERROR 1786 (HY000)

【環境描述】

msyql5.6.14

【報錯信息】

執行create table ... select的時候遇到報錯:

復制代碼 代碼如下:
db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr;
ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1

【報錯原因】

ERROR1786是由於開啟了enforce_gtid_consistency=true功能導致的,MySQL官方解釋說當啟用enforce_gtid_consistency功能的時候,MySQL只允許能夠保障事務安全,並且能夠被日志記錄的SQL語句被執行,像create table ... select 和 create temporarytable語句,以及同時更新事務表和非事務表的SQL語句或事務都不允許執行。

db1 [test] [23:28:28]> show variableslike 'ENFORCE_GTID_CONSISTENCY';

+--------------------------+-------+

| Variable_name   | Value |

+--------------------------+-------+

| enforce_gtid_consistency | ON |

+--------------------------+-------+

【解決方法】

由於enforce_gtid_consistency參數是只讀的,所以必須重啟MySQL服務才能是配置生效。

嘗試在線動態修改時的報錯:

復制代碼 代碼如下:
db1 [test] [23:37:56]> set globalenforce_gtid_consistency=true;
ERROR 1238 (HY000): Variable'enforce_gtid_consistency' is a read only variable

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved