0

私は本当に奇妙な問題に直面しています。

ユーザーと mysql 5.5 インスタンスに接続しようとしていますが、ユーザーが既に max_user_connections を超えていると言い続けています

ERROR 1226 (42000): User 'xpto' has exceeded the 'max_user_connections' resource (current value: 100)

しかし、

show processlist

そのユーザーが使用する接続は表示されません。ユーザーがまったく接続を使用していないことは確かです。たとえば、現在の値を 110 に増やすと、接続できます。下げると繋がらなくなります。

編集:グローバル接続の使用は 500 で、使用されているのはごくわずか (10/20) です。

どんな手掛かり?

4

2 に答える 2

1

サーバーにはすでに開いている接続が多すぎます。MySQL サーバーは、それ以上の許可を拒否する前に、特定の数の開いている接続のみを処理できます。この制限は、サーバーのすべてのユーザー間で共有されます。多くの接続を確立することで、だれかが MySQL サーバーを効果的に DoS することは容易に可能ですが、通常は非常に高く設定されます。

MySQL サーバー全体で接続スロットが不足していることを示すエラー メッセージ (コード 1226) が表示された場合、これは DoS シナリオです。

  1. データベースには、wordpress ブログを構成したユーザー「A」が必要です。
  2. ここでの問題は、ユーザー「A」がmaximum_questionsリソースを超えていることです (現在の値: 40)
  3. ドメイン コントロール パネルからデータベースに新しいユーザー「B」を作成しwp-config.php、wordpress インストール ディレクトリにファイルしたのと同じユーザー名を更新します。
  4. これで、数分で問題が解決しました。データベースや、wordpress や phpbb にある投稿に影響を与えることはありません。

ニューロンリングのブログからコピー

于 2012-07-12T17:38:28.517 に答える
0

MySQL 5 を使用していて、ユーザーの MAX_USER_CONNECTIONS を設定していて、ユーザーが最近切断されましたか?

MySQLドキュメントから:

MAX_USER_CONNECTIONS 制限については、アカウントが現在許可されている最大数の接続を開いている場合に、エッジ ケースが発生する可能性があります。サーバーが完全に処理していない場合、切断の直後に接続が続くと、エラー (ER_TOO_MANY_USER_CONNECTIONS または ER_USER_LIMIT_REACHED) が発生する可能性があります。接続が発生するまでに切断します。サーバーが切断処理を完了すると、別の接続が再び許可されます。

于 2012-07-12T18:39:45.007 に答える