2012-07-12 5 views
0

나는 정말 이상한 문제에 직면 해있다.Mysql 최대 사용자 연결 버그

내 MySQL은 5.5 인스턴스에 사용자와 연결하기 위해 노력하고있어하지만 나에게 자꾸 그 사용자는 이미 MAX_USER_CONNECTIONS

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

그러나,

show processlist 

하지 쇼를하지 초과 해당 사용자가 사용한 모든 연결. 나는 사용자가 전혀 연결을 사용하지 않는다고 확신한다. 예를 들어 현재 값을 110으로 늘리면 연결할 수 있습니다. 그렇다면 내가 더 낮아지면 나는 연결할 수 없다.

EDIT : 글로벌 연결 사용은 500이며 사용되는 것은 10/20입니다.

단서가 있습니까?

+1

max_user_connections 값과 연결 방법은 무엇입니까? –

+0

글로벌 최대 연결 수는 500이며 해당 사용자의 연결 수는 100입니다. mysql cli 클라이언트와이 사용자가 데이터베이스에 연결하는 유일한 방법 인 perl 스크립트에서 연결을 거부했습니다. 그리고 저는 그 perl 스크립트의 모든 인스턴스도 삭제합니다. – balsagoth

답변

1

서버의 연결이 너무 많습니다. MySQL 서버는 허용하기를 거부하기 전에 특정 개수의 열린 연결만을 처리 할 수 ​​있으며,이 제한은 서버의 모든 사용자가 공유합니다. 일반적으로 꽤 높게 설정되어 있지만, 누군가가 MySQL 서버를 효과적으로 연결하는 것은 가능합니다.

오류 메시지 (코드 1226)가 표시되면 전체 MySQL 서버의 연결 슬롯이 부족하다는 것을 나타냅니다. 이는 DoS 시나리오입니다.

  1. 귀하의 데이터베이스는 사용자가 'A'당신이 당신의 워드 프레스 블로그를 구성한 사용을해야합니다.
  2. 이제 문제는 사용자가 'A'초과 maximum_questions 자원 (현재 값 : 40)이다
  3. 동일한 사용자 이름을 도메인 제어판을 통해 데이터베이스에 새 사용자 'B'를 작성하고 업데이트하면 wp-config.php 파일 wordpress 설치 디렉토리.
  4. 이제 몇 분 안에 문제가 해결됩니다. 그것은 데이터베이스 또는 워드 프레스 또는 phpbb에있는 게시물을 방해하지 않습니다.

는 MySQL을 5 있습니까 neuronring blog

+0

아니요, processlist를 실행하면 사용자가 연결되어 있지 않다고 말한 것입니다. – balsagoth

0

에서 복사, 당신은 사용자의 MAX_USER_CONNECTIONS을 설정 한, 사용자는 최근 분리? MySQL의 docs에서

는 다음 MAX_USER_CONNECTIONS 제한의 계정이 현재 연결의 최대 수는 그것에 허용 열이있는 경우 가장자리 경우가 발생할 수에 대한

: 연결 해제가 발생할 수있는 연결에 의해 신속하게 다음 오류가 발생했습니다 (012_TU_MANY_USER_CONNECTIONS 또는 ER_USER_LIMIT_REACHED) 서버가 연결될 때까지 서버가 연결을 완전히 처리하지 않은 경우 서버가 연결 해제 처리를 완료하면 다시 연결이 허용됩니다.

+0

나는 그것이 사실이 아니라고 생각한다. mysql에 의해보고 된 사용자 연결이 없으며 하루 종일 해당 사용자와 연결할 수 없습니다. 내가 할 수있는 루트. 다시 시작해야 문제가 해결 될 것이라고 생각하지만 앞으로 문제가 발생하지 않도록 이해해야합니다. – balsagoth