Para verificar si está o no abierta, y si lo está previene que se haya cambiado de base:
   
Código vb.net:
Ver original'CONECTAR a la base de datos
    Public Function Conectar() As Boolean
        Dim strCx As String
        Dim SetDatos As New DataSet
        If Not Conexion Is Nothing Then
            If Conexion.State = 1 Then
                If Conexion.Database <> ConstBase Then
                    Conexion.ChangeDatabase(ConstBase)
                End If
                Return True
            ElseIf Conexion.State = ConnectionState.Closed Then
                Try
                    Conexion.Open()
                    If Conexion.Database <> ConstBase Then
                        Conexion.ChangeDatabase(ConstBase)
                    End If
                    Sentencias = New MySqlCommand("SET SESSION SQL_BIG_SELECTS=1;", Conexion)
                    Sentencias.ExecuteNonQuery()
                Catch ex As Exception
                    MessageBox.Show("El servidor responde: " & vbCrLf & ex.Message, "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Try
                Return True
            Else
                Return False
            End If
        Else
            Try
                strCx = "Database=" & nuevoLogin.RegServer.Ip & ";Data Source=" & nuevoLogin.NombreBase & ";User Id=" & nuevoLogin.usuario.UserName & ";Password=" & nuevoLogin.usuario.PasWord & ";Port=" & nuevoLogin.RegServer.Port.ToString & ";CharSet=utf8;Pooling=false;"
                Conexion = New MySqlConnection(strCx)
                Conexion.Open()
                sSQL = "SHOW PROCESSLIST;"
                Adapter = New MySqlDataAdapter(sSQL, Conexion)
                Adapter.Fill(SetDatos, "LISTAPROCESOS")
                If SetDatos.Tables("LISTAPROCESOS").Select("USER = '" & nuevoLogin.usuario.UserName & "'").Length > 1 Then
                    MessageBox.Show("No se puede realizar la conexión." & vbNewLine & "El usuario " & nuevoLogin.usuario.UserName & "está conectado desde otro puesto.", "Error: ADMINISTRADOR ACTIVO", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Return False
                End If
            Catch ex As MySqlException
                Select Case ex.Number
                    Case 0
                        MessageBox.Show("El servidor no responde." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Case 1226
                        MessageBox.Show("El usuario ingresado ya se encuentra logueado en otro puesto.", "Error de usuario en conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                    Case 1045
                        MessageBox.Show("El nombre de usuario o la clave son incorrectas." & vbCrLf & "Vuelva a ingresarlas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Case 2003
                        MessageBox.Show("El Server no responde." & vbCrLf & "Puede haber problemas en la intranet." & vbCrLf & "Consulte con el Administrador de Sistemas", "Error de conexión principal", MessageBoxButtons.OK, MessageBoxIcon.Error)
                    Case 1049
                        MessageBox.Show("La base de datos no existe." & vbCrLf & "Notifique al Administrador del sistema.", "Error de conexión a la base", MessageBoxButtons.OK, MessageBoxIcon.Error)
                End Select
                Return False
            End Try
            Return True
        End If
    End Function
  
ConstBase es una constante de tipo string que contiene el nombre de la base de datos usada.