C# 如何通过C杀死mysql进程#

C# 如何通过C杀死mysql进程#,c#,asp.net,mysql,C#,Asp.net,Mysql,我在Asp.Net Mvc应用程序中遇到了“连接太多”的问题,当我通过Mysql v6.56 IDE手动终止进程时,该问题得到了解决,但在远程托管计算机上,我无法每次终止进程,如何修复此错误 我已尝试连接到信息\u架构DB的进程列表表,但当连接即将执行命令时,出现错误“拒绝访问”root@loclahost信息"模式"。我还尝试将所有特权授予root@loclahost但我仍然无法解决这个问题。在过去两年中,我一直以相同的方式编码,但在这个应用程序中,我遇到了这个问题,我在每个方法中都使用了关闭

我在Asp.Net Mvc应用程序中遇到了“连接太多”的问题,当我通过Mysql v6.56 IDE手动终止进程时,该问题得到了解决,但在远程托管计算机上,我无法每次终止进程,如何修复此错误


我已尝试连接到
信息\u架构
DB的
进程列表
表,但当连接即将执行命令时,出现错误“拒绝访问”root@loclahost信息"模式"。我还尝试将所有特权授予root@loclahost但我仍然无法解决这个问题。在过去两年中,我一直以相同的方式编码,但在这个应用程序中,我遇到了这个问题,我在每个方法中都使用了关闭每个连接。如果有人遇到过这个问题或者知道答案,请帮助我。Thanx提前

您需要通过调用连接对象上的close()从代码中关闭连接。通过MySQL服务器杀死线程是一个可怕的想法

您需要通过在连接对象上调用close()从代码中关闭连接。通过MySQL服务器杀死线程是一个可怕的想法

,因为您可能并不总是有权访问MySQL服务器,或者因为您可能不总是有权访问MySQL服务器而拥有杀死线程的特权,或者拥有杀死线程的特权。请给我更多解释您的代码的功能和方式。解释,为什么它读起来像是简单的英语对我来说。但是,在服务器级别终止打开的连接仍然是一个坏主意,特别是如果有很多用户的话。更多地解释一下你的代码是做什么的,以及如何做的,那就好了。解释,为什么它看起来像是简单的英语。但是,在服务器级别终止打开的连接仍然是一个坏主意,特别是当有许多用户时。
' 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