CentOS 7 で MySQL 接続数が 214 に制限される問題の解決方法

CentOS 7 で MySQL 接続数が 214 に制限される問題の解決方法

問題を見つける

最近、プロジェクトで問題が発生しました。接続が多すぎるため、「接続が多すぎます」というプロンプトが表示され、接続数を増やす必要がありました。

/etc/my.cnf を変更しました:

最大接続数 = 2000

ただし、実際の接続数は常に 214 に制限されます。

mysql> "max_connections"のような変数を表示します。
+-----------------+-------+
| 変数名 | 値 |
+-----------------+-------+
| 最大接続数 | 214 |
+-----------------+-------+
セット内の1行

考える

接続数を 214 未満、たとえば 200 に設定すると、実際の接続数は 200 になり、構成ファイルに問題がないことが分かります。

MySQL の公式ドキュメントを確認してください。次のように書かれています。

MySQL がサポートできる接続の最大数は、特定のプラットフォームのスレッド ライブラリの品質、使用可能な RAM の量、各接続で使用される RAM の量、各接続からのワークロード、および必要な応答時間によって異なります。Linux または Solaris では、通常 500 ~ 1000 の同時接続をサポートできます。また、使用可能な RAM が数ギガバイトあり、各接続からのワークロードが低いか、応答時間の目標が厳しくない場合は、10,000 の接続をサポートできます。Windows では、そのプラットフォームで使用される POSIX 互換性レイヤーのため、(開いているテーブル × 2 + 開いている接続) < 2048 に制限されます。
open-files-limit を増やす必要があるかもしれません。また、MySQL で使用できるハンドルの数に関するオペレーティング システムの制限を上げる方法については、セクション 2.5「Linux への MySQL のインストール」を参照してください。

これはおそらく、MySQL がサポートできる接続の最大数がオペレーティング システムによって制限されていることを意味します。必要に応じて、open-files-limit を増やすことができます。つまり、接続数はファイルのオープン数と関係があります。

回避策

[root@sqzr ~]# ulimit -n
1024

オペレーティング システムの最大ファイル記述子の制限は 1024 であることがわかります。

Linux で MySQL の最大ファイル記述子制限を変更するには、 /usr/lib/systemd/system/mysqld.service lib/systemd/system/mysqld.service ファイルを編集し、ファイルの末尾に次のコードを追加します。

制限NOFILE=65535
制限NPROC=65535

保存後、以下のコマンドを実行して設定を有効にします。

$ systemctlデーモンリロード
$ systemctl mysqld.serviceを再起動します

実際の接続数は2000に達しました。

mysql> "max_connections"のような変数を表示します。
+-----------------+-------+
| 変数名 | 値 |
+-----------------+-------+
| 最大接続数 | 2000 |
+-----------------+-------+
セット内の1行

参照する

https://dev.mysql.com/doc/refman/5.7/en/接続が多すぎます.html

https://www.oschina.net/question/853151_241231

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。

以下もご興味があるかもしれません:
  • PythonはデータベースMySQLの解凍バージョンのインストール構成に接続し、問題が発生しました
  • 現在のMySQL接続数を表示する方法の詳細な説明
  • Mysql は最大接続数を表示し、最大接続数を変更します
  • MySQL で最大接続数を設定するためのヒントのまとめ
  • MySQL 接続数を設定する方法 (接続数が多すぎる)
  • MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策
  • Java Web を使用して MySQL データベースに接続する方法
  • Python 3.x データベース接続例 (pymysql メソッド)
  • PHP mysql 操作 mysql_connect 接続 データベース インスタンス 詳細な説明
  • MySQLで最大接続数を変更する2つの方法をまとめます
  • Mysql接続数の設定と取得方法

<<:  JS を使って 1 分で github+Jekyll ブログに訪問カウント機能を追加する実装

>>:  ffmpeg 中国語パラメータの説明と使用例

推薦する

MySQL 8.0.17 winx64 (Navicat 付き) 手動構成バージョンのインストール チュートリアル図

1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...

Manjaro インストール CUDA 実装チュートリアル分析

昨年末、Thinkpad T450 のデュアルシステムの opensuse を Manjaro に置...

MySQL 5.7 インストール不要の設定グラフィックチュートリアル

Mysql は人気があり、使いやすいデータベース ソフトウェアです。以下は、mysql の無料インス...

Vueは虫眼鏡付きの検索ボックスを実装します

この記事では、Vueを使用して虫眼鏡付きの検索ボックスを実装する方法を紹介します。具体的な内容は次の...

Vue.js フロントエンドフレームワークにおけるイベント処理の概要

1. v-onイベント監視DOM イベントをリッスンするには、v-on ディレクティブを使用します。...

Linux nohup コマンドの原理と例の分析

nohup コマンドUnix/Linux を使用する場合、通常はプログラムをバックグラウンドで実行す...

Vue ElementUI は非同期読み込みツリーを実装します

この記事の例では、vue ElementUI の非同期読み込みツリーを実装するための具体的なコードを...

ウェブページ内のFlash SWFファイルを変更する方法

これは多くの人が遭遇した問題だと思います。実際、Web ページから FLASH をダウンロードして修...

MySQL 8で追加された3つの新しいインデックスは、非表示、降順、関数です。

目次MySQL 8 の隠しインデックス、降順インデックス、関数インデックス1. 隠しインデックス1....

Linuxで環境変数を削除する詳細な手順

Linuxで環境変数を削除するには?unsetコマンドを使用してすぐに削除します1. Linuxクラ...

ZabbixはLinuxシステムサービスのプロセスを監視

Zabbix は Linux システムのサービス ユニットを監視するためのルールを自動的に検出します...

CSS モジュールソリューション

CSS のモジュール ソリューションは、JS のモジュール ソリューションと同じくらい多く存在すると...

vue-video-player を使用してライブ放送を実現する方法

目次1. vue-video-playerをインストールする2. vue-video-playerを...

Vue+element+springboot でファイルダウンロードの進行状況バー表示機能を実装する例

目次1. 需要背景2. 最適化計画3. 具体的な実施3.1 フロントエンドコード3.2 背景コード4...

ウェブデザインにおける2種類のタブアプリケーション

現在、Web デザインではタブが広く使用されていますが、一般的に次の 2 つのタイプに分けられます。...