主頁 > 資料庫 > MySQL 8的MGR集群中設定autocommit=0引起ERROR 1064 (42000)錯誤

MySQL 8的MGR集群中設定autocommit=0引起ERROR 1064 (42000)錯誤

2023-06-22 08:10:21 資料庫

在一套MySQL MGR集群測驗環境中,同事測驗時,在my.cnf引數檔案中修改了autocommit引數(修改為autocommit=0),結果上周五,由于系統管理員要升級RHEL 8.8的系統補丁,所以將這這三臺MySQL的資料庫服務關閉了,升級完RHEL 8.8的系統補丁后,啟動MySQL的集群時遇到了“ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction”錯誤

當前測驗環境為MySQL 8.0.33,具體操作如下所示:

mysql> show variables like 'group_replication_bootstrap_group';
+-----------------------------------+-------+
| Variable_name                     | Value |
+-----------------------------------+-------+
| group_replication_bootstrap_group | OFF   |
+-----------------------------------+-------+
1 row in set (0.02 sec)

mysql> set global group_replication_bootstrap_group=on;
Query OK, 0 rows affected (0.00 sec)

mysql>  show variables like 'group_replication_bootstrap_group';
+-----------------------------------+-------+
| Variable_name                     | Value |
+-----------------------------------+-------+
| group_replication_bootstrap_group | ON    |
+-----------------------------------+-------+
1 row in set (0.00 sec)

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST  | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | f8eea283-c942-11ed-a4e9-0050569783ac | mydbmysqlu03 |        7306 | OFFLINE      |             |                | MySQL                      |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
1 row in set (0.00 sec)

mysql> START GROUP_REPLICATION;
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction
mysql> START GROUP_REPLICATION;
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction
mysql> SET autocommit=1;
Query OK, 0 rows affected (0.00 sec)

mysql> START GROUP_REPLICATION;
Query OK, 0 rows affected (1.60 sec)

mysql> SET GLOBAL group_replication_bootstrap_group=OFF;
Query OK, 0 rows affected (0.00 sec)

mysql>  select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST  | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
| group_replication_applier | f8eea283-c942-11ed-a4e9-0050569783ac | mydbmysqlu03 |        7306 | ONLINE       | PRIMARY     | 8.0.33         | MySQL                      |
+---------------------------+--------------------------------------+--------------+-------------+--------------+-------------+----------------+----------------------------+
1 row in set (0.00 sec)

mysql> exit

當時看到錯誤ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction時,心里隱隱猜測可能是這個引數的變更導致了這個錯誤出現,因為之前多次測驗過MGR集群的重啟、切換主節點、洗掉節點等都沒遇到問題,而最近就是因為相關測驗修改了這個引數,于是將事務自動提交開啟(autocommit=1)后,問題解決了,后面搜索了一下相關資料,發現引數autocommit還真的會引起這個錯誤,下面是官方檔案[1]中用戶反饋/報告的一個"Bug"

[6 Dec 2019 15:23] Sergey Kuzmichev
Description:
With autocommit=0, after running a SELECT on mysql.slave_master_info, neither START GROUP_REPLICATION nor STOP GROUP_REPLICATION will work in the same connection.
Error reported is:
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction

This has impact on mysql shell, as it will fail to remove an instance from the cluster under some circumstances.

How to repeat:
In the same connection, run:

SET autocommit=0;
SELECT * FROM mysql.slave_master_info;
START GROUP_REPLICATION;

Error reported:

ERROR 1192 (HY000): Can'
t execute the given command because you have active locked tables or an active transaction
[9 Dec 2019 8:46] Sergey Kuzmichev
Since with autocommit=0 transaction is always open for a session, the error will be reported for start/stop after any table is queried and transaction is actually started. This is not a bug.

MySQL Shell, however, might end up not being able to remove an instance due to this, but that's a different issue.
[10 Dec 2019 10:56] Sergey Kuzmichev
After some further consideration, it'
s still at least curious that start/stop group_replication behaves differently than regular start/stop slave does. The latter command will implicitly commit the transaction. Is there a reason for the difference in behavior?

#autocommit=0
mysql> select * from test;
Empty set (0.00 sec)

mysql> start group_replication;
ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction
mysql> start slave;
ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
mysql> start group_replication;
ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.
[10 Dec 2019 13:05] MySQL Verification Team
Hi,

Thanks for the report, verified as described. Can'
t say really if the code or only documentation will change as the workaround is rather simple.

thanks

參考資料

[1]

Bug #97917: https://bugs.mysql.com/bug.php?id=97917#:~:text=How%20to%20repeat%3A%20In%20the%20same%20connection%2C%20run%3A,active%20transaction%20%5B9%20Dec%202019%208%3A46%5D%20Sergey%20Kuzmichev

掃描上面二維碼關注我 如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力! 本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接.

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/555811.html

標籤:其他

上一篇:穩,從資料庫連接池 testOnBorrow 看架構設計

下一篇:返回列表

標籤雲
其他(161487) Python(38244) JavaScript(25512) Java(18251) C(15238) 區塊鏈(8271) C#(7972) AI(7469) 爪哇(7425) MySQL(7265) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5875) 数组(5741) R(5409) Linux(5347) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4606) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2436) ASP.NET(2404) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1984) HtmlCss(1971) 功能(1967) Web開發(1951) C++(1942) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1881) .NETCore(1863) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • MySQL 8的MGR集群中設定autocommit=0引起ERROR 1064 (42000)錯誤

    在一套MySQL MGR集群測驗環境中,同事測驗時,在my.cnf引數檔案中修改了autocommit引數(修改為autocommit=0),結果上周五,由于系統管理員要升級RHEL 8.8的系統補丁,所以將這這三臺MySQL的資料庫服務關閉了,升級完RHEL 8.8的系統補丁后,啟動MySQL的集 ......

    uj5u.com 2023-06-22 08:10:21 more
  • 穩,從資料庫連接池 testOnBorrow 看架構設計

    本文從 Commons DBCP testOnBorrow 的作用機制著手,管中窺豹,從一點去分析資料庫連接池獲取的程序以及架構分層設計。以下內容會按照每層的作用,貫穿分析整個呼叫流程。 ......

    uj5u.com 2023-06-22 08:10:18 more
  • InnoDB鎖初探(一):鎖分類和RR不同場景下的鎖機制

    # Mysql資料庫鎖(Innodb) 資料庫鎖是Mysql實作資料一致性的基礎之一,是在事務的基礎之上,基于Mysql Server層或存盤引擎層實作的。 ## 鎖日志 前置條件: ```sql set GLOBAL innodb_status_output=ON; set GLOBAL inno ......

    uj5u.com 2023-06-22 08:10:09 more
  • 全球唯一云廠商!華為云高分入選2023Gartner Peer Insights?云資料

    本文分享自華為云社區《華為云高分入選2023Gartner Peer Insights?云資料庫管理系統“客戶之選”》,作者:GaussDB 資料庫 。 近日,Gartner最新發布Gartner Peer Insights 《Voice of the Customer for Cloud Data ......

    uj5u.com 2023-06-22 08:09:57 more
  • HiveSQL在使用聚合類函式的時候性能分析和優化詳解

    帶聚合函式的SQL邏輯,我們可以根據其執行程序的不同,將其分成三大類來進行分析:
    僅在Reduce階段聚合的SQL執行邏輯
    在Map和Reduce階段都有聚合操作的SQL執行邏輯
    高級分組聚合的執行SQL邏輯 ......

    uj5u.com 2023-06-22 08:09:48 more
  • 性能提升30%!袋鼠云數堆疊基于 Apache Hudi 的性能優化實戰決議

    Apache Hudi 是一款開源的[資料湖解決方案](https://www.dtstack.com/dtengine/easylake?src=https://www.cnblogs.com/DTinsight/archive/2023/06/21/szsm),它能夠幫助企業更好地管理和分析海量資料,支持高效的[資料更新和查詢](https://www.dtstack.com/dtengine/ea ......

    uj5u.com 2023-06-22 08:09:38 more
  • ClickHouse(14)ClickHouse合并樹MergeTree家族表引擎之Versioned

    [toc] >VersionedCollapsingMergeTree引擎繼承自MergeTree并將折疊行的邏輯添加到合并資料部分的演算法中。VersionedCollapsingMergeTree用于相同的目的折疊樹但使用不同的折疊演算法,允許以多個執行緒的任何順序插入資料。特別是,Version列有 ......

    uj5u.com 2023-06-22 08:09:32 more
  • ClickHouse技術研究及語法簡介

    本文對Clickhouse架構原理、語法、性能特點做一定研究,同時將其與mysql、elasticsearch、tidb做橫向對比,并重點分析與mysql的語法差異,為有mysql遷移clickhouse場景需求的技術預研及參考。 ......

    uj5u.com 2023-06-22 08:09:28 more
  • MySQL一個關于derived table的bug描述與規避

    # 關聯文章: - [MySQL對derived table的優化處理與使用限制](http://mp.weixin.qq.com/s?__biz=MzkzMTIzMDgwMg==&mid=2247501528&idx=1&sn=03ea1cd0eb8f42bacda0583879ad494c&ch ......

    uj5u.com 2023-06-22 08:09:19 more
  • 全球唯一云廠商!華為云高分入選2023Gartner Peer Insights?云資料

    本文分享自華為云社區《華為云高分入選2023Gartner Peer Insights?云資料庫管理系統“客戶之選”》,作者:GaussDB 資料庫 。 近日,Gartner最新發布Gartner Peer Insights 《Voice of the Customer for Cloud Data ......

    uj5u.com 2023-06-22 08:08:51 more