mysql 8.0.27 / 8.0.27.1 でレプリケーションを有効にすると、"Too many connections mysql" 発生、またはmysql がハングする
search cancel

mysql 8.0.27 / 8.0.27.1 でレプリケーションを有効にすると、"Too many connections mysql" 発生、またはmysql がハングする

book

Article ID: 251993

calendar_today

Updated On:

Products

CA API Gateway

Issue/Introduction

mysql にログインしようとすると、"Too many connections mysql" という問題が発生しました。また、mysql がハングしており応答がありませんでした。

これは、mysql が 8.0.27 以降の 11 月、12 月、1 月の月次プラットフォーム パッチを適用した後で確認されています。

# rpm -qa | grep mysql

mysql-commercial-server-8.0.28-1.1.el7.x86_64

Environment

リリース: 10.0 10.1

コンポーネント: API GATEWAY

Resolution

MySQL 8.0.27 での主な変更点は、レプリケーションがデフォルトで新しいマルチスレッドに変更されたことです。
MySQL ドキュメントによると、replica_parallel_workers=0 を設定すると無効になります。

2022 年 2 月の現在の月次プラットフォーム パッチでは、これに対処しています。

 

月次パッチを適用できない場合は、代わりに手動で以下の手順に従ってください。

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-27.html
 
レプリケーション: レプリカ サーバーのマルチスレッドがデフォルトで有効になりました

変更手順:

1) SSG サービスの停止します。
 # service ssg stop

2) レプリケーションを停止します。
          2A) 両方のノードでスレーブ レプリケーションを停止します: mysqladmin stop-slave
          2B) 両方のノードでマスター構成をリセットします: mysql -e "reset master"
          2C) 両方のノードでスレーブ構成をリセットします: mysql -e "reset slave; reset slave all"

3) /etc/mysql.cnf を更新して、両方のノードの [mysqld] セクションに replica_parallel_workers=0 を含めます。
         # vi /etc/my.cnf                   **** 両方のノードで
 

         **** my.cnf は以下のようになります。
         [mysqld]
         # Added on this date mm/dd/yyyy to use legacy replication
         replica_parallel_workers=0

4) 両方のノードでmysqlを再起動します。

         # service mysql restart

5) レプリケーションを再開します。
         以下の技術情報に従ってください:

        API Gateway: Reinitialize replication in a multi-node cluster 

Additional Information

毎月のプラットフォーム パッチ "Layer7_API_PlatformUpdate_64bit_v10.X-CentOS-2022-03-29.L7P" 以降、この KB の修正は /etc/my.cnf への変更に対処しました。

#Added to disable multithreaded replication from mysql 8.0.27 version

replica_parallel_workers=0

#

この文書は以下の英文技術情報を翻訳したものです。

[英語文書] Too many connections mysql or mysql hangs with replication Enabled at mysql 8.0.27 / 8.0.27.1