(error #2013) Lost connection to MySQL server during query
#1

Se puede hacer algo cuando se pierde la conecciуn con el servidor mysql para evitar consultas fallidas, ejemplo se desconecta un jugador y la conecciуn falla por A o B razуn, їse puede hacer algъna funciуn para volver a enviar la consulta si йsta falla?


(error #2013) Lost connection to MySQL server during query

PD: se me perdiу por 6 segundos, pero luego de eso se volviу a establecer.
Reply
#2

A segun del servidor que tu tengas, as provado a buscar algo en ******?

Mira esto por ejemplo:
http://stackoverflow.com/questions/6...r-during-query
Reply
#3

Quote:
Originally Posted by Galletziz
Посмотреть сообщение
A segun del servidor que tu tengas, as provado a buscar algo en ******?

Mira esto por ejemplo:
http://stackoverflow.com/questions/6...r-during-query
osea que con йsto no se puede buscar una soluciуn mediante pawno? es problema del hostin mysql?
Reply
#4

Quote:
Originally Posted by jotajeda
Посмотреть сообщение
osea que con йsto no se puede buscar una soluciуn mediante pawno? es problema del hostin mysql?
Si el problema es del hosting, no se deberнa apagar ni rechazar conexiones ni por 1, ni 2 ni 6 segundos, deberнa estar online las 24 horas del dнa sin caнdas, desde pawn lo que puedes hacer es chequear si el servidor estб conectado a la base de datos y si no estб conectado hacer por ejemplo que el servidor no corra o apagarlo, etc.
Reply
#5

Una soluciуn serнa cambiar la configuraciуn de MySQL (click), o que no mandaras consultas muy largas. Guarda solamente lo que necesites y en el momento que sea necesario.

Ejemplos:

Actualizar las muertes/asesinatos de un jugador en OnPlayerDeath en vez de hacerlo cuando se desconecte:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    pData[playerid][Muertes]++;
    pData[killerid][Asesinatos]++;
    format(query, sizeof(query), "UPDATE cuentas SET muertes = muertes + 1 WHERE id = %d", pData[playerid][ID]);
    mysql_tquery(conexion, query);
    format(query, sizeof(query), "UPDATE cuentas SET asesinatos = asesinatos + 1 WHERE id = %d", pData[killerid][ID]);
    mysql_tquery(conexion, query);
    return true;
}
Actualizar el nivel del jugador justo cuando use el comando en vez de hacerlo cuando se desconecte:

pawn Код:
CMD:quieroadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      pData[playerid][Nivel] = 9999;
      format(query, sizeof(query), "UPDATE cuentas SET nivel = %d WHERE id = %d", pData[playerid][Nivel], pData[playerid][ID]);
      mysql_tquery(conexion, query);
   }
   else return SendClientMessage(playerid, -1, "mira que coincidencia, yo tambiйn");
}
Reply
#6

Quote:
Originally Posted by Fluid016
Посмотреть сообщение
Si el problema es del hosting, no se deberнa apagar ni rechazar conexiones ni por 1, ni 2 ni 6 segundos, deberнa estar online las 24 horas del dнa sin caнdas, desde pawn lo que puedes hacer es chequear si el servidor estб conectado a la base de datos y si no estб conectado hacer por ejemplo que el servidor no corra o apagarlo, etc.
Si gracias por el link, esque mandй una consulta con INSERT de las casas que estoy haciendo con mysql y me saliу йse problema, la consulta no se mandу por la perdida de conecciуn, asi que tuve que volver a poner el comando nuevamente para mandar la consulta, imaginate que un jugador cuando el servidor ya estese abierto online, al desconectarse y la consulta no se mande, a la mierda todo, entonces creo que es necesariуn ir poniendo todo en йse preciso momento, ejemplo: mandar consulta en el mismo momento cuando se le aumenta/resta el dinero, etc.
їEs riesgozo poner toda la consulta para cojer los datos de todas las variables en el callback Onplayerdisconnect?

Quote:
Originally Posted by LuiisRubio
Посмотреть сообщение
Una soluciуn serнa cambiar la configuraciуn de MySQL (click), o que no mandaras consultas muy largas. Guarda solamente lo que necesites y en el momento que sea necesario.

Ejemplos:

Actualizar las muertes/asesinatos de un jugador en OnPlayerDeath en vez de hacerlo cuando se desconecte:

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    pData[playerid][Muertes]++;
    pData[killerid][Asesinatos]++;
    format(query, sizeof(query), "UPDATE cuentas SET muertes = muertes + 1 WHERE id = %d", pData[playerid][ID]);
    mysql_tquery(conexion, query);
    format(query, sizeof(query), "UPDATE cuentas SET asesinatos = asesinatos + 1 WHERE id = %d", pData[killerid][ID]);
    mysql_tquery(conexion, query);
    return true;
}
Actualizar el nivel del jugador justo cuando use el comando en vez de hacerlo cuando se desconecte:

pawn Код:
CMD:quieroadmin(playerid, params[])
{
   if(IsPlayerAdmin(playerid))
   {
      pData[playerid][Nivel] = 9999;
      format(query, sizeof(query), "UPDATE cuentas SET nivel = %d WHERE id = %d", pData[playerid][Nivel], pData[playerid][ID]);
      mysql_tquery(conexion, query);
   }
   else return SendClientMessage(playerid, -1, "mira que coincidencia, yo tambiйn");
}
Gracias por comentar, como dije arriba, es grabe o riesgoso poner todo en onplayerdisconnect?
Reply
#7

Si la consulta es muy larga sн.
Reply
#8

Quote:
Originally Posted by LuiisRubio
Посмотреть сообщение
Si la consulta es muy larga sн.
130 columnas de la tabla del jugador + 190 columnas de la tabla de los vehiculos, subo datos en йse mismo momento que se desconecta a las 2 tablas con todas las variables.
Reply
#9

їPodrнas mostrarme alguna de esas dos consultas? Tal vez puedas quitar algunos datos y ponerlos en otro lugar.
Reply
#10

Revivo, una pregunta, creen ustedes que si pongo la base de datos en localhost en el mismo lugar en donde estб el samp server se minimizarб йste error que teniendo la base en la pagina web?, como dije esto no pasa siempre, pasa en un 98% de las consultas.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)