mysql錯(cuò)誤處理之ERROR 1786 (HY000)
ERROR 1786 (HY000)
【環(huán)境描述】
msyql5.6.14
【報(bào)錯(cuò)信息】
執(zhí)行create table ... select的時(shí)候遇到報(bào)錯(cuò):
db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr;
ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1
【報(bào)錯(cuò)原因】
ERROR1786是由于開啟了enforce_gtid_consistency=true功能導(dǎo)致的,MySQL官方解釋說(shuō)當(dāng)啟用enforce_gtid_consistency功能的時(shí)候,MySQL只允許能夠保障事務(wù)安全,并且能夠被日志記錄的SQL語(yǔ)句被執(zhí)行,像create table ... select 和 create temporarytable語(yǔ)句,以及同時(shí)更新事務(wù)表和非事務(wù)表的SQL語(yǔ)句或事務(wù)都不允許執(zhí)行。
db1 [test] [23:28:28]> show variableslike 'ENFORCE_GTID_CONSISTENCY'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | enforce_gtid_consistency | ON | +--------------------------+-------+
【解決方法】
由于enforce_gtid_consistency參數(shù)是只讀的,所以必須重啟MySQL服務(wù)才能是配置生效。
嘗試在線動(dòng)態(tài)修改時(shí)的報(bào)錯(cuò):
db1 [test] [23:37:56]> set globalenforce_gtid_consistency=true;
ERROR 1238 (HY000): Variable'enforce_gtid_consistency' is a read only variable
下面是其他網(wǎng)友的補(bǔ)充
一般mysql5.7以前版本是支持create table XXX as select * from XXX; 這種創(chuàng)建表的語(yǔ)法,但是MySQL5.7.x版本里面gtid是開啟的,會(huì)報(bào)錯(cuò)
ERROR 1786 (HY000):Statement violates GTID consistency: CREATE TABLE ... SELECT.
官方說(shuō)明:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-restrictions.html
CREATE TABLE ... SELECT statements. CREATE TABLE ... SELECT is not safe for statement-based replication. When using row-based replication, this statement is actually logged as two separate events—one for the creation of the table, and another for the insertion of rows from the source table into the new table just created. When this statement is executed within a transaction, it is possible in some cases for these two events to receive the same transaction identifier, which means that the transaction containing the inserts is skipped by the slave. Therefore, CREATE TABLE ... SELECT is not supported when using GTID-based replication.
解決辦法關(guān)閉GTID模式:
my.cnf里面修改參數(shù)為:
gtid_mode = OFF
enforce_gtid_consistency = OFF
重啟MySQL,再次創(chuàng)建成功:
mysql> show variables like '%gtid_mode%'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | gtid_mode | OFF | +---------------+-------+ 1 row in set (0.01 sec) mysql> show variables like '%enforce_gtid_consistency%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | enforce_gtid_consistency | OFF | +--------------------------+-------+ 1 row in set (0.01 sec) mysql> create table t1 as select * from BS_CONT; Query OK, 0 rows affected (0.12 sec)
到此這篇關(guān)于mysql錯(cuò)誤處理之ERROR 1786 (HY000)的文章就介紹到這了,更多相關(guān)mysql錯(cuò)誤處理之ERROR 1786 (HY000)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL錯(cuò)誤ERROR 2002 (HY000): Can''t connect to local MySQL server through socket
- mysql error:#1062 Duplicate entry ‘***′ for key 1問題解決方法
- MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)問題的解決
- mysql ERROR 1044 (42000): Access denied for user ''''@''localhost'' to database
- MySQLdb ImportError: libmysqlclient.so.18解決方法
- mysql登錄報(bào)錯(cuò)提示:ERROR 1045 (28000)的解決方法
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
- mysql不能啟動(dòng)報(bào)error2013錯(cuò)誤的多種解決方案
- winxp 安裝MYSQL 出現(xiàn)Error 1045 access denied 的解決方法
- mysql啟動(dòng)時(shí)出現(xiàn)ERROR 2003 (HY000)問題的解決方法
相關(guān)文章
從創(chuàng)建數(shù)據(jù)庫(kù)到存儲(chǔ)過程與用戶自定義函數(shù)的小感
從創(chuàng)建數(shù)據(jù)庫(kù)到存儲(chǔ)過程與用戶自定義函數(shù)的小感,深入的學(xué)習(xí)mysql2011-09-09擁有5星評(píng)級(jí)數(shù)據(jù)庫(kù)表結(jié)構(gòu) 如何才能更高效的使用?
本篇文章介紹了,擁有5星評(píng)級(jí)數(shù)據(jù)庫(kù)表結(jié)構(gòu) 如何才能更高效的使用的方法。需要的朋友參考下2013-04-04MySQL 數(shù)據(jù)恢復(fù)的多種方法匯總
日常工作中,總會(huì)有因手抖、寫錯(cuò)條件、寫錯(cuò)表名、錯(cuò)連生產(chǎn)庫(kù)造成的誤刪庫(kù)表和數(shù)據(jù)的事情發(fā)生。但是,如果每次刪庫(kù)都跑路的話,怕是再也不好找工作了吧!所以,刪庫(kù)跑路不是上上策2021-06-06通過mysqladmin遠(yuǎn)程管理mysql的方法
在一些特殊場(chǎng)景下,想要遠(yuǎn)程重啟mysql,以便讓某些修改能及時(shí)的生效,但是mysql并沒有提供遠(yuǎn)程重啟的功能,唯一能做的就是遠(yuǎn)程關(guān)閉mysql服務(wù)2013-03-03MySQL的id關(guān)聯(lián)和索引使用的實(shí)際優(yōu)化案例
這篇文章主要介紹了MySQL的id關(guān)聯(lián)實(shí)際優(yōu)化案例,關(guān)聯(lián)和索引一直是MySQL常見的可優(yōu)化大塊兒,需要的朋友可以參考下2015-05-05Mysql查詢優(yōu)化之IN子查詢優(yōu)化方法詳解
項(xiàng)目中有需要,使用MySQL的in子查詢,查詢符合in子查詢集合中條件的數(shù)據(jù),但是沒想到的是,MySQL的in子查詢會(huì)如此的慢,讓人無(wú)法接受,下面這篇文章主要給大家介紹了關(guān)于Mysql查詢優(yōu)化之IN子查詢優(yōu)化的相關(guān)資料,需要的朋友可以參考下2023-02-02