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

ブログ    

推薦する

ウェブページサイズに関する調査

<br />統計によると、Web ページの平均サイズは 2003 年以降 3 倍に増加し...

JavaScript でサウンド効果付きの花火効果を実装する

コードを書くのに 30 分かかりましたが、この HTML5 Canvas New Year Fire...

XHTMLにおけるH1タグの位置について

最近、H1 については多くの議論が行われていますが (記事のコンテンツ ページ内)、おおよそ 2 つ...

Flask アプリケーションの Docker デプロイ実装手順

1. 目的Flask アプリケーションをローカルで作成し、Docker でパッケージ化し、独自のサー...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

Linux ディレクトリ切り替え実装コード例

ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...

CentOS7 での mysql 5.7.23 のバイナリ インストール

インターネット上のインストール情報は不均一で、落とし穴だらけです。インストールにはかなりの労力がかか...

div が iframe に覆われるいくつかの状況とその解決策

類似の構造:コードをコピーコードは次のとおりです。 <div></div>&...

autoconfを使用してMakefileを生成し、プロジェクトをコンパイルする手順

序文Linux では、コンパイルとリンクには Makefile を使用する必要がありますが、適切な ...

フォームデータを取得するための Node.js メソッドの 3 つの例

序文Nodejs はサーバーサイド言語です。開発中、登録やログインなどでは、判断のためにフォームを通...

Nginx サーバーで Web クローラーをブロックおよび禁止する方法

通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーの...

nginx リクエスト ヘッダー データ読み取りプロセスの詳細な説明

前回の記事では、nginx がリクエスト ラインのデータを読み取って、リクエスト ラインを解析する方...

Mysql general_log をクリーンアップする方法の概要

方法1: グローバル general_log を 'OFF' に設定します。 テーブ...

CentOS8でのDockerの使い方の詳しい説明

1. CentOS8でのDockerのインストール カール https://download.doc...