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

推薦する

ホバードロップダウンメニューを実装するためのネイティブJS

JS はホバー ドロップダウン メニューを実装します。これは、フロントエンドの面接で遭遇するシナリ...

CentOS6.8 は cmake を使用して MySQL5.7.18 をインストールします。

オンライン情報を参考に、cmakeを使用してCentOS6.8サーバーにMySQL5.7.18をイン...

Nodejs のグローバル変数とグローバルオブジェクトの知識ポイントと使用方法の詳細

1. グローバルオブジェクトすべてのモジュールは呼び出すことができます1) global: ブラウザ...

Vue の el-table は自動天井効果を実現します (固定をサポート)

目次序文実装のアイデア効果:使用:メインソースコード:序文多くのケースを見た結果、単純な観点からは、...

vue3.2 で追加された defineCustomElement の基本原理の詳細な説明

目次Webコンポーネントカスタム要素概要HTMLTemplateElement コンテンツ テンプレ...

innodb_flush_method 値メソッド (例の説明)

innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...

負の距離(共感) - 相互影響の反復プロセス

ネガティブな距離は共感を意味します。序文(疑問の提起):プロダクトマネージャーは機能を把握します。機...

CSSに基づいてマウス入力の方向を決定する

以前、フロントエンド技術グループに所属していたとき、グループのメンバーが面接中に問題に遭遇したと言っ...

UbuntuにMySQLをインストールするときにデフォルトのパスワードを変更する詳細な手順

ステップ1: ディレクトリに入ります: cd /etc/mysql、debian.cnfファイルを表...

デザインにおけるユーザーエクスペリエンスの背後にある8つのユーザー本能について話す

編集者注: この記事は、Teambition チームの @娄昊川 が寄稿したものです。Teambit...

LinuxにPython 3.6をインストールして落とし穴を避ける

Python 3のインストール1. 依存環境をインストールするPython3 はインストール プロセ...

親ページの更新を制御するために HTML で iframe を実装するためのアイデアとコード

1. 応用シナリオ親ページ a.jspサブページ b.jsp (ページ a に埋め込まれた ifra...

jsを使用してカルーセル効果を実現する

今日は、参考までに、jsを使用してカルーセルマップの効果を実現する方法についてお話ししましょう。具体...

TomcatはLog4jを使用してcatalina.outログを出力します。

Tomcat のデフォルトのログは java.util.logging を使用しますが、これにはい...

MySQLデータベース移行により、大量のデータを迅速にエクスポートおよびインポートできます

データベースの移行は、よく遭遇する問題です。データ量が少ない場合、移行は基本的に問題になりません。実...