Problem plugin - połączenie z bazą danych
Scorpion Flail
19.08.2013
Witam.
Posiadam CoD MoD stary do którego był robiony zapis lvl do bazy.
Niestety plugin nie chce w ogóle łączyć z bazą:
L 08/14/2013 - 17:40:14: [cod_4001(4).amxx] [ startSQLHandle ] Query failed: L 08/14/2013 - 17:40:14: [cod_4001(4).amxx] [ startSQLHandle ] Couldn't connect with db
Hosting unixstorm, zezwolenia hosta dawałem, próbowałem też z %, bez skutku. Sprawdzałem również na 2 serwerach hlds z różnych hostingów.
Części kodu odpowiadająca za połączenie:
pCvarHost = register_cvar( "sql_save_host" , "host" ); pCvarUser = register_cvar( "sql_save_user" , "user" ); pCvarPass = register_cvar( "sql_save_pass" , "pass" ); pCvarDB = register_cvar( "sql_save_db" , "db" );
public plugin_cfg(){ new szHost[ 256 ], szUser[ 256 ], szPass[ 256 ], szDB[ 256 ]; get_pcvar_string( pCvarHost , szHost , charsmax( szHost ) ); get_pcvar_string( pCvarUser , szUser , charsmax( szUser ) ); get_pcvar_string( pCvarPass , szPass , charsmax( szPass ) ); get_pcvar_string( pCvarDB , szDB , charsmax( szDB ) ); tupleSQL = SQL_MakeDbTuple( szHost , szUser , szPass , szDB ); startSQL() }
public startSQLHandle(FailState, Handle:Query, Errorcode, Error[], Data[], DataSize){ if(Errorcode) log_amx("[ startSQLHandle ] Query failed: %s", Error) if(FailState == TQUERY_CONNECT_FAILED){ log_amx("[ startSQLHandle ] Couldn't connect with db") return PLUGIN_CONTINUE; } else if(FailState == TQUERY_QUERY_FAILED){ log_amx("[ startSQLHandle ] Query failed"); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; }
Tworzenie tabeli:
public startSQL(){ SQL_ThreadQuery( tupleSQL , "startSQLHandle" , "CREATE TABLE IF NOT EXISTS codLVL ( name TEXT NOT NULL , class INT , experience INT , lvl INT , intelligence INT , health INT , durability int , condition int , protect int , experiencePoints int, PRIMARY KEY ( name ) )" ); }
Kawon
20.08.2013
Ten temat został przeniesiony z forum
Scripting AMXX → Problemy
do
Mody → Call of Duty Mod → Problemy
BlackPerfum
22.08.2013
L 08/14/2013 - 17:40:14: [cod_4001(4).amxx] [ startSQLHandle ] Couldn't connect with db
Serwer nie może się połączyć z bazą danych. Nie wina zapytań czy pluginu. Sprawdź czy cvary poprawnie uzupełnione i czy samemu możesz się połączyć z bazą danych. Oraz czy na twoim hoście istnieje baza danych o nazwie zawartej w cvarze: "sql_save_db"
Scorpion Flail
22.08.2013
Serwer nie może się połączyć z bazą danych. Nie wina zapytań czy pluginu. Sprawdź czy cvary poprawnie uzupełnione i czy samemu możesz się połączyć z bazą danych. Oraz czy na twoim hoście istnieje baza danych o nazwie zawartej w cvarze: "sql_save_db"
Takie banały były dokładnie sprawdzane. Dane do bazy probówalem zarówno przez cvara jak i amxx.cfg + sprawdzałem cvarami na serwerze czy się zgadzają.
Z bazą danych bez problemu łączę się z mysql font.
Serwer bez problemu łączy się z amxbans, który stoi na tym samym hoście.
Wina musi leżec po stronie kodu pluginu.
Scorpion Flail
24.08.2013
MySQL 1.8.1.3710 AMX Mod X Dev Team running SQLite 1.8.1.3710 AMX Mod X Dev Team running Fun 1.8.1.3710 AMX Mod X Dev Team running Engine 1.8.1.3710 AMX Mod X Dev Team running FakeMeta 1.8.1.3711 AMX Mod X Dev Team running GeoIP 1.8.1.3710 AMX Mod X Dev Team running nVault 1.8.1.3710 AMX Mod X Dev Team running CStrike 1.8.1.3710 AMX Mod X Dev Team running CSX 1.8.1.3710 AMX Mod X Dev Team running Ham Sandwich 1.8.1.3710 AMX Mod X Dev Team running Sockets 1.8.1.3710 HLSW Dev Team running RegEx 1.8.1.3710 AMX Mod X Dev Team running
To na pewno nie wina modułów.
Jeszcze raz przeanalizowałem logi. Błąd Couldn't connect with db występuje tylko za pierwszym razem po uruchomieniu serwera do końca mapy.
Po zmianie mapy(i kolejnych) zostaje już tylko błąd:
Query failed:
Błąd chyba tkwi w tworzeniu tabeli - brak w tym atrybutów. Gdy ręcznie tworzyłem zapytanie sql miałem taki błąd:
#1170 - BLOB column 'name' used in key specification without a key length
Proszę kogoś o pomoc
Użytkownik Scorpion Flail edytował ten post 24.08.2013 20:32