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 中国語パラメータの説明と使用例

推薦する

ドロップダウンメニュー効果を実現するJavaScript

参考までに、JavaScriptを使用してドロップダウンメニューを実装します。具体的な内容は次のとお...

Linux 上での MySQL データベースのリモート展開の詳細な手順

LinuxリモートMySQLデータベースの展開、参考までに、具体的な内容は次のとおりです。 1.0 ...

フレックスインサイドボタンの垂直方向の中央揃えが中央揃えにならない問題の解決方法

問題の説明ボタンのスタイルはアイコン + テキストです。フレックス レイアウトを使用して垂直方向に中...

hrefを使用すると、リンクをクリックするだけでページ上の特定の場所にジャンプできます。

ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...

MYSQL開発パフォーマンス調査:バッチデータ挿入の最適化方法

1. どのような問題に直面しましたか?標準 SQL では、通常、次の SQL 挿入ステートメントを記...

MySQL の時間設定に関する考慮事項の詳細な要約

時間は本当に存在するのでしょうか?時間は人間が考え出した概念に過ぎず、物事の変化を測る基準に過ぎない...

JS はランダム点呼システムを実装します

参考までに、JSを使用してランダム点呼システムを実装します。具体的な内容は次のとおりです。毎回の授業...

VMware インストール エラー VMware Workstation が VMware 認証サービスを開始できませんでした

背景: SAP ECC サーバーをインストールし、XP をプレインストールしたいと考えています。XP...

MySQL B-Tree インデックスの簡単な分析

Bツリーインデックス異なるストレージ エンジンでは、異なるストレージ構造を使用する場合もあります。た...

Vueは複数列レイアウトドラッグを実装します

この記事では、マルチカラムレイアウトドラッグを実装するためのVueの具体的なコードを参考までに共有し...

テーブルを使用する場合と CSS を使用する場合 (経験の共有)

TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...

JavaScript はドラッグ可能なモーダルボックスを実装します

この記事では、ドラッグ可能なモーダルボックスを実装するためのJavaScriptの具体的なコードを参...

マークアップ言語 - 印刷スタイルシート

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...