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
リリース: 10.0 10.1
コンポーネント: API GATEWAY
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
毎月のプラットフォーム パッチ "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