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

推薦する

Linux に nodejs 環境とパス構成をインストールするための詳細な手順

Linux に Node.js をインストールする方法は 2 つあります。1 つは簡単で、解凍して使...

MySQLデータの挿入、更新、削除の詳細

目次1. 挿入2. 更新3. 削除1. 挿入 顧客に挿入( 顧客.顧客住所、 顧客.cust_cit...

MySQLはJSON内部フィールドを抽出し、数値としてダンプします

目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...

MySQL InnoDB ストレージ エンジンの詳細

序文MySQL では、InnoDB はストレージ エンジン レイヤーに属し、プラグインとしてデータベ...

MySQL LOAD_FILE() 関数メソッドの概要

MySQL では、LOAD_FILE() 関数はファイルを読み取り、その内容を文字列として返します。...

MySQLへの外部ネットワークアクセスを許可し、MySQLアカウントのパスワードを変更する方法

mysqlのrootアカウント、普段はlocalhostか127.0.0.1で接続しています。会社の...

Vue でルートをジャンプする方法をご存知ですか?

目次最初の方法: router-link (宣言型ルーティング) 2番目の方法: router.pu...

MySQL 8.0 の新機能 - 管理ポートの使用の概要

目次序文接続管理追加の接続管理ポート要約する序文皆さんの多くは、次のようなエラー メッセージに遭遇し...

MySQLの一般的なメモリ不足による起動失敗に対する完璧な解決策

1. MySQLが正常に起動しない場合は、エラーログ/var/log/mysql/error.log...

CentOS7でルートパスワードをリセットする方法

レンガを移動するプロセスでは、さまざまな環境および構成の問題があり、毎回異なるエラーが発生します。 ...

k8s に ingress-nginx をデプロイする手順

目次序文1. Ingressの展開と構成2. httpsを使用する序文k8sクラスタサービスがデプロ...

レイアウトサイズを変更するために左右にドラッグする純粋なCSS

ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...

リモートDockerを使用した統合テスト環境の構築手順

需要背景チームには統合テストが必要であり、そのためには、mysql や rabbitmq などのミド...

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

HTML の順序なしリストタグと順序付きリストタグの使用例

1. 上部と下部のリストタグ: <dl>..</dl>:上dt下層dd: カ...