2010-05-17 5 views
0

Mysql v6.56 IDE를 통해 프로세스를 수동으로 종료 할 때 수정되는 Asp .Net Mvc 응용 프로그램에서 "너무 많은 연결"문제가 발생합니다. 그러나 원격 호스팅 컴퓨터에서 ' 이 오류를 어떻게 해결할 수 있습니까?C#을 통해 mysql 프로세스를 죽이는 방법

information_schema DB의 PROCESSLIST 테이블에 연결을 시도했지만 연결이 명령을 실행하려고하면 "root @ loclahost information_schema의 액세스가 거부되었습니다"라는 오류가 발생합니다. 또한 루트 @ loclahost 모든 권한을 부여하려고했지만 여전히이 문제를 해결할 수 없습니다. 나는 지난 2 년 동안 같은 방식으로 코딩을 해왔지만,이 애플리케이션에서는 모든 메소드에서 각각의 커넥션을 close close해야한다. 어떤 분이이 문제를 가지고 계시거나 대답을 알고 계시다면 제발 도와주세요. 제발 도와주세요. 고맙습니다 미리

답변

3

연결 개체에서 close()를 호출하여 코드 내에서 연결을 닫아야합니다. MySQL 서버를 통해 쓰레드를 죽이는 것은 끔찍한 생각이다.

+0

나는 이미 작성한이 방법을 사용하고있다. –

+2

그런 다음 수정해야합니다. – Midhat

+0

당신은 항상 mysql 서버에 액세스 할 수 없거나 스레드를 죽일 수있는 권한이 없기 때문에 – Midhat

0
' code in vb.net you can convert it to c# easily 
Dim ConnectionString As String = "your connection string" 
Public Function KillAllMySQL() As Integer 
    Dim query As String = "SHOW FULL PROCESSLIST" 
    ' 
    Try 
     Dim mySqlConnection As MySqlConnection = New MySqlConnection(ConnectionString) 
     ' 2. open connection to database using connectionString 
     mySqlConnection.Open() 
     ' 3. Create a command to hold values 
     Dim objCmd As New MySqlCommand(query, mySqlConnection) 
     ' 4. Add parameters for sqlCommand 
     mySqlDataReader = objCmd.ExecuteReader() 
     If mySqlDataReader.HasRows Then 
      Do While mySqlDataReader.Read() 
       ' kill processes with elapsed time > 200 seconds and in Sleep 
       If mySqlDataReader.GetInt32(5) > 200 And mySqlDataReader.GetString(4) = "Sleep" Then 
        KillMySqlProcess("KILL " & mySqlDataReader.GetInt32(0)) 
       End If 
      Loop 
     End If 
     If Not mySqlDataReader Is Nothing Then mySqlDataReader.Close() 
     If Not mySqlConnection Is Nothing Then mySqlConnection.Close() 
    Catch ex As MySqlException 
     Return -1 
    End Try 
    Return 0 
End Function 

Public Function KillMySqlProcess(ByVal myQuery As String) As Integer 
    '1. Create a query 
    Dim query As String = myQuery 
    ' 
    Try 
     Dim mySqlConnection As MySqlConnection = New MySqlConnection(ConnectionString) 
     ' 2. open connection to database using connectionString 
     mySqlConnection.Open() 
     ' 3. Create a command to hold values 
     Dim objCmd As New MySqlCommand(query, mySqlConnection) 
     objCmd.ExecuteNonQuery() 
     mySqlConnection.Close() 
    Catch ex As MySqlException 
     Return -1 
    End Try 

    Return 0 
End Function 
+0

코드에 대한 설명과 방법이 더 좋을 것입니다. – Styxxy

관련 문제