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 の 3 つの主要属性における Ref の使用に関する詳細な説明

目次クラスコンポーネント機能コンポーネントインタビューのよくある質問: React における ref...

MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル

MySQL 5.7.27のインストールチュートリアルは以下のように記録され、皆さんと共有されています...

MySql 5.7.21 無料インストール バージョンの構成方法 (Win10 の場合)

1.インストールしたい場所に解凍し、my.iniファイルを作成します。 my.iniの内容は次のと...

VueでTypescriptの設定手順を使用する

目次1. TypeScriptが古いVueプロジェクトに導入されるVue+Typescript プロ...

HTML ページで JSON データを表示およびフォーマットする方法

JSONデータはHTMLページ上に表示されフォーマットされます1. 表示効果図説明:すべてのキー値は...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

HTML の著作権記号のフォント選択問題 (著作権記号をより美しくする方法)

1. 問題を発見する&copy; は HTML の著作権記号ですが、間違ったフォントを選択す...

JavaScriptの厳密モードが8進数をサポートしていない問題の説明

JavaScript厳密モードが 8 進数をサポートしていないという問題に関して、まず、 Java...

MySQL で浮動小数点データを文字データに変換するときに起こりうる問題の詳細な説明

序文この記事は主に、MySQL で浮動小数点型を文字型に変換するときに発生する問題を紹介します。これ...

ReactのEffectListの簡単な分析

目次EffectList コレクション最初のレンダリング時のEffectList EffectLis...

Linuxの運用と保守の基本プロセス管理と環境構成分析

目次1. プロセスの基本的な概要2. プロセスの構成要素3. プロセス環境4. プロセスステータス5...

MySQL の高可用性アーキテクチャの完全な説明: MHA アーキテクチャ

目次1. はじめに2. 構成3. 作業プロセス4. 建築5. 表示例MHA (Master HA) ...

CSS で適応型ディバイダーを巧みに実装する N 通りの方法

分割線はウェブページでよく使われるデザインです。例えば、Zhihuのその他の回答をご覧ください。 こ...

node.jsのコアモジュールとは

目次グローバルオブジェクトグローバルオブジェクトとグローバル変数プロセスコンソール一般的なツールユー...

Vueコンポーネントの動的コンポーネントの詳細な説明

目次要約する要約する配列が変更されると、対応するデータを動的にロードしますシナリオ: 異なるコンポー...