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 の使用に関する詳細

推薦する

MySQL データベースの必須条件クエリ ステートメント

目次1. 基本的な文法2. 条件式によるフィルタリング3. 論理式によるフィルタリング4. あいまい...

ウェブサイトにファビコンを追加するためのヒント: URLの前の小さなアイコン

いわゆるファビコンは、Favorites Icon の略で、中国語ではウェブサイトアバターと呼ばれて...

MySQL はどのようにしてマルチバージョンの同時実行性を実現するのでしょうか?

目次MySQL マルチバージョン同時実行1. マルチバージョン同時実行制御1. 一貫した読み取り2....

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

JavaScript コンソールのその他の機能

目次概要コンソールログコンソール.infoコンソール.警告コンソールエラーコンソールテーブルコンソー...

CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)

1. 環境整備1.MySQLインストールパス: /usr/local 2. CentOS 6.2 ...

MySQL をインストールした後に調整する必要がある 10 のパフォーマンス設定項目

このブログでは、MySQL データベースをインストールした後に調整することが推奨される 10 のパフ...

HTML 5.1 学習: 14 の新機能とアプリケーション例

序文ご存知のとおり、HTML5 はインターネット コミュニティ全体に標準を提供する組織である Wor...

Nginx 静的ファイル サービスの構成と最適化の詳細な説明

ルートディレクトリとインデックスファイルroot ディレクティブは、ファイルの検索に使用するルート ...

MySQL のロック待機とデッドロック問題の分析

目次序文: 1. ロック待機とデッドロックを理解する2. 現象の再発と治療要約:序文: MySQL ...

MySQL並列レプリケーションの簡単な説明

1. 並列レプリケーションの背景まず、並列レプリケーションの概念はなぜ存在するのでしょうか? 1. ...

Linux システムのスワップ領域の紹介

スワップ スペースは、オペレーティング システムに関係なく、今日のコンピューティングの一般的な側面で...

vuex で履歴を実装するためのサンプルコード

私は最近、ユーザー操作を元に戻す、またはやり直す機能を備えたビジュアル操作プラットフォームを開発して...