Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Błąd SQL / Crash serwera/tmp/mysql.sock


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
8 odpowiedzi w tym temacie

#1 Karmi1

    Pomocny

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:61
  • Lokalizacja:Gdańsk
Offline

Napisano 08.12.2011 15:52

Witam. Pisałem już kilka razy na temat tego problemu, lecz nie otrzymałem odpowiedzi. Zauważyłem również że ludzie mają z tym problemy. Otóż zrobiłem własnego Diablo Moda, wszystko pięknie działa: Exp się zapisuje w bazie MySQL, Lvle czyta, Questy działają wszystko normalnie. Lecz od czasu do czasu dochodzi do crashów. Wchodzę w logi, patrzę i co widzę? Otóż taki błąd:

L 10/03/2011 - 08:36:14: Error on Table query: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
L 10/03/2011 - 08:36:14: Could not connect to SQL database.

Serwer restartuje się i później przez jakiś czas działa normalnie.
W Logach jest wszystko dobrze bo jak mówię SERWER DZIAŁA i wszystko na nim jest dobrze.
Jest to szczerze nietypowy błąd. Czy jest możliwe aby był on związany z kodowaniem w .sma?

Prosiłbym o poradę osoby które wiedzą.
.SMA mogę podać ZAUFANYM osobom.

Dziękuję i pozdrawiam:
Karmi
  • +
  • -
  • 0

#2 Leszcz

    Życzliwy

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:29
  • GG:
  • Imię:Bartek
  • Lokalizacja:Białystok
Offline

Napisano 08.12.2011 18:14

A sproboj wgrac podstawowego diablo moda.Jezeli dalej bedzie Ci crashowac server,to proponuje zmienic hosting servera mysql.
Bo skoro Ci wczytuje i zapisuje exp itp. , a czasami nie.. to mozna wywnioskowac ze server mysql sie wylacza a nastepnie wlacza.
Wydaje mi sie ze dlatego sa crashe,ale to tylko moje zdanie.

Użytkownik Leszcz edytował ten post 08.12.2011 18:15

  • +
  • -
  • 0

#3 Karmi1

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:61
  • Lokalizacja:Gdańsk
Offline

Napisano 08.12.2011 18:19

Już to robiłem. Zmieniałem nie tylko hosting serwera MySQL (Miałem proserwer, zmieniłem na Unixstorm). Zmieniłem też hosting z pukawka.pl na Tserwery.pl i co prawda crashe występowały rzadziej ale jednak nadal :/
  • +
  • -
  • 0

#4 Leszcz

    Życzliwy

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:29
  • GG:
  • Imię:Bartek
  • Lokalizacja:Białystok
Offline

Napisano 08.12.2011 18:47

jezeli hostingi nic nie daly to proponuje wgrac podstawowego Diablomod 5.9l i sprawdzic czy dalej sa crashe.Jezeli nie bedzie to bedzie oczywiste ze to wina Twojego sma
  • +
  • -
  • 0

#5 Karmi1

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:61
  • Lokalizacja:Gdańsk
Offline

Napisano 08.12.2011 19:07

Jak już mówiłem próbowałem z normalnym Diablo i błędów nie ma. Więc prawdopodobnie błąd w .sma. Mogę wiedzieć jaka funkcja za to odpowiada? (Mogę wkleić tutaj kawałek kodu)
  • +
  • -
  • 0

#6 Leszcz

    Życzliwy

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:29
  • GG:
  • Imię:Bartek
  • Lokalizacja:Białystok
Offline

Napisano 08.12.2011 20:16

Ja bym podmienil wszystko co jest zwiazane z mysql czyli ten kod:
public sql_start()
{
if(sqlstart<0) return
if(g_boolsqlOK) return

new host[128]
new user[64]
new pass[64]
new database[64]

get_cvar_string("diablo_sql_database",database,63)
get_cvar_string("diablo_sql_host",host,127)
get_cvar_string("diablo_sql_user",user,63)
get_cvar_string("diablo_sql_pass",pass,63)

g_SqlTuple = SQL_MakeDbTuple(host,user,pass,database)



get_cvar_string("diablo_sql_table",g_sqlTable,63)

new q_command[512]
format(q_command,511,"CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`ip` VARCHAR( 64 ),`sid` VARCHAR( 64 ), `klasa` integer( 2 ) , `lvl` integer( 3 ) DEFAULT 1, `exp` integer( 9 ) DEFAULT 0, `str` integer( 3 ) DEFAULT 0, `int` integer( 3 ) DEFAULT 0, `dex` integer( 3 ) DEFAULT 0, `agi` integer( 3 ) DEFAULT 0 ) ",g_sqlTable)

SQL_ThreadQuery(g_SqlTuple,"TableHandle",q_command)
}
//sql//
public TableHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
// lots of error checking
g_boolsqlOK=1
if(Errcode)
{
g_boolsqlOK=0
log_to_file("addons/amxmodx/logs/diablo.log","Error on Table query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
g_boolsqlOK=0
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Table Query failed.")
g_boolsqlOK=0
return PLUGIN_CONTINUE
}
LoadAVG()
return PLUGIN_CONTINUE
}

public create_klass(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && database_user_created[id]==0)
{
new name[64]
new ip[64]
new sid[64]
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
get_user_ip ( id, ip, 63, 1 )
get_user_authid(id, sid ,63)
log_to_file("addons/amxmodx/logs/test_log.log","*** %s %s *** Create Class ***",name,sid)
new data[1]
data[0]=id
new q_command[2048]
new i=1
database_user_created[id]=1
format(q_command,2047,"INSERT INTO `%s` (`nick`,`ip`,`sid`,`klasa`,`lvl`,`exp`) VALUES ('%s','%s','%s',%i,%i,%i )",g_sqlTable,name,ip,sid,i,srv_avg[i],LevelXP[srv_avg[i]-1])
for(i=2;i<9;i++)
{
format(q_command,2047,"%s, ('%s','%s','%s',%i,%i,%i)",q_command,name,ip,sid,i,srv_avg[i],LevelXP[srv_avg[i]-1])
}
SQL_ThreadQuery(g_SqlTuple,"create_klass_Handle",q_command,data,1)

}
}
else sql_start()
}
public create_klass_Handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
// lots of error checking
new id=Data[0]
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on create klass query: %s",Error)
database_user_created[id]=0
asked_klass[id]=0
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
database_user_created[id]=0
asked_klass[id]=0
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","create klass Query failed.")
database_user_created[id]=0
asked_klass[Data[0]]=0
return PLUGIN_CONTINUE
}
asked_klass[id]=0
database_user_created[id]=2
changerace(id)
return PLUGIN_CONTINUE
}
public load_xp(id)
{
if(g_boolsqlOK /*&& */)
{
if(!is_user_bot(id))
{
new name[64]
new data[1]
data[0]=id
if(get_cvar_num("diablo_sql_save")==0)
{
get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `nick`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
get_user_ip(id, name ,63,1)
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `ip`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
get_user_authid(id, name ,63)
new q_command[512]
format(q_command,511,"SELECT `klasa` FROM `%s` WHERE `sid`='%s' ",g_sqlTable,name)
SQL_ThreadQuery(g_SqlTuple,"SelectHandle",q_command,data,1)
}
loaded_xp[id]=1
}
}
else sql_start()
}
public SelectHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on load_xp query: %s",Error)
}
if(FailState == TQUERY_CONNECT_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.")
return PLUGIN_CONTINUE
}
else if(FailState == TQUERY_QUERY_FAILED)
{
log_to_file("addons/amxmodx/logs/diablo.log","load_xp Query failed.")
return PLUGIN_CONTINUE
}


if(SQL_MoreResults(Query)) return PLUGIN_CONTINUE
else create_klass(Data[0])

return PLUGIN_CONTINUE
}
//sql//



Czy podczas kompilacji masz moze jakies bledy?

Użytkownik Leszcz edytował ten post 08.12.2011 20:19

  • +
  • -
  • 0

#7 Karmi1

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:61
  • Lokalizacja:Gdańsk
Offline

Napisano 15.12.2011 17:42

Niestety nie pomogło :/
  • +
  • -
  • 0

#8 Koniarek

    Wszechwidzący

  • Zbanowany

Reputacja: 28
Życzliwy

  • Postów:250
  • Imię:Filip
  • Lokalizacja:Daleko
Offline

Napisano 15.12.2011 20:07

Jesli masz Baze Danych na www.ProSerwer.pl (www.xaa.pl) to wejdz:

~~Klick~~

#9 Ziebaxd

    Życzliwy

  • Użytkownik

Reputacja: -3
Mniej niż zer0.

  • Postów:22
  • Imię:Kamil
  • Lokalizacja:Polska
Offline

Napisano 15.12.2011 20:08

Może znajdź kawałek kodu związanego z mysql weź surową wersję diablo i porównaj gdzie są różnice, może wdarł się przez pomyłkę drobny błąd i to powoduje ci crashe serwera.
  • +
  • -
  • 0
Dołączona grafika




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych