MySQLで最大接続数を達成する方法

MySQLで最大接続数を達成する方法

データベース接続数が急増した理由は何ですか?

データベースのパフォーマンスが突然低下し、接続しているクライアントが応答を得るまでに長い時間がかかる場合があります。クライアントは確認されていないと判断し、接続を続けます。これによりセッション数が増加し、データベースがビジー状態になり、最終的にクラッシュします。

1. はじめに

プロジェクトでは、「MySQL: ERROR 1040: Too many connections」という異常な状況に遭遇することがあります。理由: この状況の原因の 1 つは、トラフィックが多すぎて MySQL サーバーが処理できないことです。このとき、サーバーからの読み取り圧力を上げて分散することを検討する必要があります。もう 1 つの原因は、MySQL 構成ファイルの max_connections 値が小さすぎることです。

2. 知識ポイント

Mysql の max_connections パラメータは、接続 (ユーザー) の最大数を設定するために使用されます。 MYSQL に接続する各ユーザーは 1 つの接続としてカウントされます。max_connections のデフォルト値はバージョンによって若干異なります。

Mysql5.5 mysql5.6 mysql5.7: デフォルトの最大接続数は151で、上限は100000です。

wKioL1WfL-mQ12woAACbi5DxTZU099.jpg

Mysql5.1 では、マイナーバージョンによってデフォルトの最大接続数と変更可能な接続数の上限が異なります。

翻訳:

MySQL 5.0バージョン: デフォルトの最大接続数は100で、上限は16384です。

翻訳元:

MySQL のバージョンが 5.7 から 8.0 に上がったことに対して不満を言いたいです。 Mysql5.5 mysql5.6 mysql5.7: デフォルトの最大接続数は 151 です。この値は、同時接続数が多いデータベース アプリケーションには到底不十分です。接続要求数がデフォルトの接続数を超えると、データベースに接続できないことを示すエラーが発生するため、適切に増やす必要があります。 MySQL データベースを使用すると、「MySQL サーバーに接続できません。接続が多すぎます」という問題 (mysql 1040 エラー) がよく発生します。これは、MySQL にアクセスしてまだ解放されていない接続数が MySQL の上限に達したためです。 MySQL は、現在の接続数が max_connections に達した場合でも、管理者がメンテナンス操作のためにデータベースに接続するために使用する管理者 (SUPER) ログインの接続を常に保持します。したがって、MySQL に実際に接続できる最大数は max_connections+1 です。max_connections パラメータの値を増やしても、システム リソースが過度に消費されることはありません。システム リソース (CPU、メモリ) の使用量は、主にクエリの密度と効率によって決まります。このパラメータを小さく設定しすぎると、最も明らかな症状として「接続が多すぎます」というエラーが発生します。

3. 練習する

1. 最大接続数を確認する

Mysql5.5 mysql5.6 mysql5.7: デフォルトの最大接続数は151で、上限は100000です。

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

2. サーバーが応答する接続の最大数を確認する

mysql> 'Max_used_connections' のようなグローバル ステータスを表示します。
+----------------------+-------+
| 変数名 | 値 |
+----------------------+-------+
| 最大使用接続数 | 11 |
+----------------------+-------+
セット内の 1 行 (0.00 秒)

サーバーが応答する接続の最大数は 11 であり、これは MySQL サーバーで許可される接続の最大数よりもはるかに少ないことがわかります。 MySQL サーバーの最大接続値の理想的な設定範囲は、サーバー応答の最大接続値とサーバーの上限接続値の比率が 10% 以上です。10% 未満の場合、MySQL サーバーの最大接続制限値が高すぎることを意味します。

3. 最大接続数を変更する

最大接続数を変更する一般的な 2 つの方法は次のとおりです。
最初の方法: コマンドラインで最大接続数 (max_connections) を変更し、最大接続数を 1000 に設定します。

mysql> グローバルmax_connectionsを1000に設定します。

この方法には問題があり、設定された最大接続数は現在の MySQL サービス プロセスに対してのみ有効です。MySQL を再起動すると、初期状態に戻ります。 MySQL の起動後の初期化作業では、設定ファイルからデータが読み取られますが、この方法では設定ファイルに変更が加えられません。

2 番目の方法: 構成ファイルを変更して、MySQL 接続の最大数 (max_connections) を変更します。
MySQL インストール ディレクトリに移動し、MySQL 構成ファイル my.ini または my.cnf を開き、max_connections=100 を検索して max_connections=1000 に変更し、MySQL サービスを再起動します。

IV. 参考文献

1. https://www.yisu.com/zixun/38410.html

2. https://bbs.huaweicloud.com/blogs/147608

これで、MySQL で最大接続数を達成する方法についての記事は終了です。MySQL で最大接続数についての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL で最大接続数を正しく変更する 3 つの方法
  • Docker で MySQL 接続と設定ファイルの最大数を変更する
  • Mysql は最大接続数を表示し、最大接続数を変更します
  • MySQL で最大接続数を設定するためのヒントのまとめ
  • MySQLで最大接続数を変更する2つの方法をまとめます
  • MYSQL接続の最大数を変更する3つの方法を共有する
  • MySQLで最大接続数を増やす方法

<<:  Dockerコンテナ間の通信を実装する方法

>>:  Vue での bimface の使用に関する詳細

推薦する

React コードを共有するためのベストプラクティス

プロジェクトがある程度複雑になると、必然的にロジックの再利用の問題に直面することになります。 Rea...

MySQL 8.0 redo ログの詳細な分析

目次序文REDOログの生成REDOログ送信REDOログの保存と通知ユーザースレッドに通知要約する序文...

React Native スキャフォールディングの基本的な使い方の詳細な説明

プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...

MySQL マルチテーブル結合クエリの詳細な説明

目次複数テーブル結合クエリ内部結合左結合右結合サブクエリ要約する複数テーブル結合クエリテーブル間の接...

ReactプロジェクトでのTypeScriptの実装

目次1. はじめに2. 使用方法ステートレスコンポーネントステートフルコンポーネント制御コンポーネン...

【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...

写真のプレビューとアップロード機能を実現するhtml+css+js

はじめに: Web ページを作成するときに、画像をアップロードする必要がある場合がよくあります。画像...

初心者向けウェブサイト構築チュートリアルの概要

これら 6 つの記事を書いた後、私は少し混乱し始めました。次にどこに書けばいいのか分かりません。ドメ...

js でシンプルなタブを実装する

タブ選択カードは、実際の Web ページで非常に頻繁に使用されます。基本的に、すべての Web ペー...

vue.js ルーターのネストされたルートの実例

目次序文Vue CLI での設定基本コードVueルーターの登場ネストされたルートの設定要約する序文V...

シンプルな加算計算機の JavaScript 実装

この記事では、参考までに、加算計算機を実装するためのJavaScriptの具体的なコードを紹介します...

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

XHTML の珍しいが便利なタグ

Xhtml には、あまり使用されないが非常に便利なタグが多数あります。半分の労力で 2 倍の結果を達...

Dockerのヘルス検出メカニズム

コンテナの場合、最も単純なヘルスチェックはプロセス レベルのヘルスチェックであり、プロセスが稼働して...