Autor Tema: Se desconecta MySQL  (Leído 10510 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Se desconecta MySQL
« en: Junio 12, 2012, 03:02:26 am »
Haciendo mis pininos con este motor me encuentro con un problemilla.
En www.freemysql.cree la BD y usando SQLYog cree las tablas y meti unos registros y todo bien.

Ahora, con vb6 uso esta conexión
Código: (VB) [Seleccionar]
Public db As ADODB.Connection
Public rs As ADODB.Recordset
Código: (VB) [Seleccionar]
Private Sub Conectar()
Set db = New ADODB.Connection
Set rs = New ADODB.Recordset
   
rs.CursorLocation = adUseClient
db.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=SQL09.FREEMYSQL.NET;Database=bdyacosta01; User=miusuario;Password=mipassword;Option=3;"
db.Open
End Sub
Lo primero: Para que sirve ¿Option = 3? he buscado y me perdi mas porque en otros ejemplos en la web he encontrado que usan OPTION=16427 o OPTION=16384 ???? que vaina??

Bueno, siguiendo con el codigo:

Me conecto:
Código: (VB) [Seleccionar]
Private Sub Form_Load()
Conectar
Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM MITABLA", db, 1, 1
Set Grid1.DataSource = rs
End Sub
Y excelente!!!.
Ahora, pongo un par de textbox y un boton para meter registros y en el boton tengo esto:
Código: (VB) [Seleccionar]
Private Sub Command1_Click()
db.BeginTrans
db.Execute "INSERT INTO MITABLA(NOMBRE, DIRECCION) VALUES ('" & Text1 & "', '" & Text2 & "')"
db.CommitTrans

Dim rs As New ADODB.Recordset  'Esto para recargar y verlo de una vez.
rs.Open "SELECT * FROM MITABLA", db, 1, 1
Set Grid1.DataSource = rs
End Sub

Pruebo el codigo y ya estoy saltando de alegria porque funciona bien, por medir la velocidad de los insert hago varios clic y la respuesta es deseable, dejo de hacerlo por unos 10 segundos y al volver a hacer clic me sale esto:



Entonces como nunca me había pasado esto con mi otro motor debe ser que me falta definir algo, porque cada 10 segundos +/- al intentar grabar me sale ese error en el insert, ¿por defecto MySQL tiene un tiempo de espera?¿Donde lo redefino? porque usualmente la aplicación la podre tener abierta horas tal como lo hago actualmente con mi otro motor y creo que con cualquiera.

Gracias
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Se desconecta MySQL
« Respuesta #1 en: Junio 12, 2012, 03:03:24 pm »
MySQL tiene un tiempo de conexion, en local hasta hace algunas versiones era de 8 horas, en la version 5.5 lo redujeron a 5minutos. En Online siempre lo reducen a una sola consulta por ejemplo, esto cuando vos abrís haces un par de consultas en poco tiempo y se cierra. esto es porque sino el host se satura de muchas conexiones. Así sucede en PHP, por cada vez que pones una pagina, la conexion dura como mucho un par segundos :P

En Vb6 con mysql online es recomendable conectar y desconectarse ante cada consulta. Ojo, solo cuando es online, cuando tenes el servidor en tu propia red, mantené la conexion abierta siempre

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Se desconecta MySQL
« Respuesta #2 en: Junio 12, 2012, 04:31:26 pm »
Eso nunca me habia pasado. Yo desarrolle un BOT para un cliente que tomaba la información de SQL Server y registro por registro lo insertaba en MySQL en la nube. No tuve que conectarme y desconectarme, simplemente aperturaba mi conex y hasta que no finalizara, no cerraba la conex. Que raro eso.
Miguel Núñez.

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Se desconecta MySQL
« Respuesta #3 en: Junio 12, 2012, 10:08:50 pm »
Mira: Wait_Timeout - System Variables

En realidad depende de cada host. Si es "en la nube" claramente esta preparado para conexiones pesadas. Pero Yvan esta en un hosting compartido :P no tiene dedicado así que no puede pedir mucho (supongo que es así, sino, podes configurarlo o algo más tiene que haber). Tampoco se si el puede configurar esa variable, es depende del host

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Se desconecta MySQL
« Respuesta #4 en: Junio 13, 2012, 12:37:13 am »
Si ese hosting al ser libre no se le puede pedir nada mas.

En mi host de pago no me permiten conectar un exe a la BD en nube porque me tienen cerrado el puerto y no lo abrirán por temas de seguridad. Pero en otro hosting que también es de pago y que si tienen abierto ese puerto ¿podre pedir que me habiliten mas el tiempo de conexión?. Sino por ultimo, me conecto y desconecto. (obviamente en local siempre abriré una sola vez)
Estoy por responder este mensaje del hosting que no quiere perderme como cliente:
"Respecto al hosting, digame cuales son sus requerimientos y puedo armar un plan a medida con un precio super especial"
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Se desconecta MySQL
« Respuesta #5 en: Junio 13, 2012, 09:25:35 pm »
Es que en realidad siempre vas a tener que hacerlo, no imagina que lo tenes abierto por 3 dias, vos te pensas que la conexion va a durar? :P siempre tienes que estar abriendo y cerrando ante ese error :P

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Se desconecta MySQL
« Respuesta #6 en: Junio 14, 2012, 12:18:12 am »
La verdad nunca tube problemas por que yo en local y e internet todas mis conexiones siempre la cierro. Esto no le va a gustar a seba xD se que esta mal pero siempre me funciono. Por eso estoy esperando ancioso el tuto que seba esta preparando para cambiar mis hábitos de programación.

Yo lo tengo así y nunca tube problemas:

En un Modulo:


Código: (VB) [Seleccionar]
Public cnADO As ADODB.Connection    '// Conexion ADO
Public rsADO As ADODB.Recordset     '// RecordSet ADO
Public StrSQL As String             '// Parametro para MySQL
Public ComandoSQL As String         '// Comando MySQL

Código: (VB) [Seleccionar]
'Conectar a la Base datos

Public Sub ConectarADO()
   
    On Error GoTo ErrorHandler
   
    Set cnADO = New ADODB.Connection    '// Crear la nueva conexion
    Set rsADO = New ADODB.Recordset     '// Crear nuevo recordset
   
    rsADO.CursorLocation = adUseClient  '// Tipo de cursor a utilizar
    cnADO.ConnectionString = "Driver={MySQL ODBC 5.1 Driver};Server=184.182.23.43;Database=control_hotel; User=root;Password=" & MDIForm1.lblPass.Caption & ";Option=3;"
    cnADO.Open                          '// Abrir la nueva conexion
           
ErrorHandler:
   
    If Err <> 0 Then
        MsgBox "Error Nº: " & Format(Err.Number, "##,###0") & vbCrLf & vbCrLf & Err.Source & vbCrLf & vbCrLf & Err.Description, vbCritical, "Error"
    End If

End Sub

Este uso para cerrar la Bd.

Código: (VB) [Seleccionar]
Public Sub CerrarADO()
   
    If Not cnADO Is Nothing Then
   
    Else
        cnADO.Close            '// Cerrar la conexion
        Set cnADO = Nothing    '// Liberar conexion de la memoria
        Set rsADO = Nothing    '// Liberar recorset de la memoria
    End If
   
End Sub


En un Form trayendo datos de la tabla y mostrando en un listview.

Código: (VB) [Seleccionar]
Sub TRAER_CLIENTES()

    Me.MousePointer = 11
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Aca Conecto a la Base Datos
        Call ConectarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
       
        LClientes.ListItems.Clear
        StrSQL = "SELECT * FROM clientes"
        rsADO.Open StrSQL, cnADO, adOpenStatic, adLockOptimistic, adCmdText
        Do Until rsADO.EOF
            Set Lv = LClientes.ListItems.Add()
            With rsADO
                Lv.Text = Format(.Fields("codigo"), "##,###0")
                Lv.SubItems(1) = .Fields("cedula")
                Lv.SubItems(2) = strReplaceVer(.Fields("nombre") & "")
                rsADO.MoveNext
            End With
        Loop
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Aca Cierro la base datos
        Call CerrarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
   
    Me.MousePointer = 0

End Sub


Esta forma nunca me fallo.
« última modificación: Junio 14, 2012, 12:21:45 am por E N T E R »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Se desconecta MySQL
« Respuesta #7 en: Junio 14, 2012, 02:32:14 am »
Es que en realidad siempre vas a tener que hacerlo, no imagina que lo tenes abierto por 3 dias, vos te pensas que la conexion va a durar? :P siempre tienes que estar abriendo y cerrando ante ese error :P

No pues, 3 días también es una exageración innecesaria, pero también 2 o 3 segundos lo es. Por supuesto que se cerraría la conexión cuando cierre el programa obviamente. La mejor solución debiera ser que sea posible que yo defina el tiempo de cuanto tiempo quiero mantenerlo abierto, con 5 minutos al menos me basta que seria la suficiente para hacer algunas operaciones, pero ya no hay roche si las cosas son asi normal pues que asi sea no hay trauma, por cada transacción abriré y cerrare tal como lo hace Ariel.
« última modificación: Junio 14, 2012, 02:34:30 am por YAcosta »
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Se desconecta MySQL
« Respuesta #8 en: Junio 14, 2012, 10:24:11 am »
Si se que es una exageración, pero siempre existe esa posibilidad :P imagina algo que funcione 24 horas siempre de forma remota y sin que se sature su conexión a internet :P por eso muchos manejadores de base de datos en mysql tienen la reconección automatica

imacopez

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:Se desconecta MySQL
« Respuesta #9 en: Enero 23, 2015, 11:18:36 am »
El error server has gone away, contraté un servidor dedicado y se modificó my.cnf de Mysql y aún así me da este error.-
Mi conexión es de 20Mb y lo hago con cable, wi-fi ....   
pero  al conectarme con mi Iphone no pasa nada de esto.

imacopez

Luffy

  • Kilobyte
  • **
  • Mensajes: 90
  • Reputación: +4/-2
  • Desarrollar es el arte de crecer no de crear.
    • Ver Perfil
Re:Se desconecta MySQL
« Respuesta #10 en: Enero 28, 2015, 04:10:35 pm »
Creo que este enlace te puede dar una idea más clara de tu option = 3 en el connectionstring de mysql

http://mirror.metrocast.net/mysql/doc/refman/5.0/es/myodbc-configuration-connection-parameters.html

Pero esto ya lo habia explicado yo, es como configuras tu servidor y tu cliente, osea puedes tener un servidor "DEDICADO" y configurar tu cliente "DEDICADO" tal y como tu quieres.

Pero lo mejor es hacerlo transaccional o por transacción para no saturar el puerto ni la base de datos. Es cuestión de gustos.

ssccaann43

  • Moderador
  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Se desconecta MySQL
« Respuesta #11 en: Enero 31, 2015, 11:43:31 am »
Yvan, tanto que insistí en que no me pasa, pues me sucedió, desarrolle un soft para un cliente, para realizarle mantenimiento a sus Maquinarias, Equipos y Vehículos, y ciertamente después de unos segundos el Server cerro la conex. Tuve que optar por cerrar y abrir la conex constantemente, no es lo mejor pero para estos casos te quita el dolor de cabeza... Créeme.... Saludos a todos...
Miguel Núñez.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Se desconecta MySQL
« Respuesta #12 en: Enero 31, 2015, 06:20:33 pm »
Yvan, tanto que insistí en que no me pasa, pues me sucedió, desarrolle un soft para un cliente, para realizarle mantenimiento a sus Maquinarias, Equipos y Vehículos, y ciertamente después de unos segundos el Server cerro la conex. Tuve que optar por cerrar y abrir la conex constantemente, no es lo mejor pero para estos casos te quita el dolor de cabeza... Créeme.... Saludos a todos...

No, si te creo doctor, como lo dije alla en el 2012 me quedaba claro que asi era de cuando a hosting nos referimos... cosa diferente de cuando te conectas a la BD de una PC remota, alli si hago la conexion una vez y la cierro al final porque segun experiencia con el motor que tengo va de 10.
Me encuentras en YAcosta.com