MySQL-Plugin-Fehler auf Linux-Server

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey leute,
    ich habe ein kleines Problem beim Konvertieren von meinem kleinen privaten Testserver auf einen "öffentlichen"-Linux-Server, da die Plugins ja andere Dateien erfordern.
    Alle mysql.so-Dateien, die ich bereits getestet habe, scheinen denselben Fehler auszuspucken, daher habe ich mir einmal das Crashdetect-Plugin geholt. Details im server-log unten!
    Ich habe keine Filterscripts, eigentlich nur 2 Plugins (Sscanf & MySQL) und 1 Gamemode, welches ohne crashdetect nicht einmal in der server-log erwähnt wird. Beim Connecten auf den Server das übliche "Server didnt respond". ?(


    Vielen Dank im Voraus!
    MfG Markus



    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3.7-R2, (C)2005-2015 SA-MP Team


    [23:21:14] filterscripts = "" (string)
    [23:21:14]
    [23:21:14] Server Plugins
    [23:21:14] --------------
    [23:21:14] Loading plugin: sscanf.so
    [23:21:14]


    [23:21:14] ===============================


    [23:21:14] sscanf plugin loaded.


    [23:21:14] Version: 2.8.1


    [23:21:14] (c) 2012 Alex "Y_Less" Cole


    [23:21:14] ===============================


    [23:21:14] Loaded.
    [23:21:14] Loading plugin: mysql_static.so
    [23:21:14] >> plugin.mysql: R39-4 successfully loaded.
    [23:21:14] Loaded.
    [23:21:14] Loading plugin: crashdetect.so
    [23:21:14] CrashDetect v4.15.1 is OK.
    [23:21:14] Loaded.
    [23:21:14] Loaded 3 plugins.


    [23:21:14]
    [23:21:14] Filterscripts
    [23:21:14] ---------------
    [23:21:14] Loaded 0 filterscripts.


    [23:21:14] [debug] Server crashed while executing mainONLINE.amx
    [23:21:14] [debug] AMX backtrace:
    [23:21:14] [debug] #0 native mysql_connect () from mysql_static.so
    [23:21:14] [debug] #1 000064e8 in public SSCANF_OnGameModeInit () from mainONLINE.amx
    [23:21:14] [debug] #2 00000744 in public OnGameModeInit () from mainONLINE.amx
    [23:21:14] [debug] Native backtrace:
    [23:21:14] [debug] #0 f67a4e8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
    [23:21:14] [debug] #1 f679dbcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
    [23:21:14] [debug] #2 f679edbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
    [23:21:14] [debug] #3 f679f226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
    [23:21:14] [debug] #4 f67a4adc in ?? () from plugins/crashdetect.so
    [23:21:14] [debug] #5 f776ae30 in ?? ()
    [23:21:14] [debug] #6 f776ae50 in ?? ()
    [23:21:14] [debug] #7 f746e607 in gsignal () from /lib/i386-linux-gnu/libc.so.6
    [23:21:14] [debug] #8 f7471a33 in abort () from /lib/i386-linux-gnu/libc.so.6
    [23:21:14] [debug] #9 f769d405 in _ZN9__gnu_cxx27__verbose_terminate_handlerEv () from /usr/lib/i386-linux-gnu/libstdc++.so.6
    [23:21:14] [debug] #10 f769b063 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
    [23:21:14] [debug] #11 f769b09f in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
    [23:21:14] [debug] #12 f769b306 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
    [23:21:14] [debug] #13 f7244acf in _ZN5boost15throw_exceptionINS_21thread_resource_errorEEEvRKT_ () from plugins/mysql_static.so
    [23:21:14] [debug] #14 f724a101 in _ZN5boost6threadC1INS_3_bi6bind_tIvNS_4_mfi3mf0Iv16CMySQLConnectionEENS2_5list1INS2_5valueIPS6_EEEEEEEEOT_ () from plugins/mysql_static.so
    [23:21:14] [debug] #15 f7245bfc in _ZN16CMySQLConnectionC1ERSsS0_S0_S0_jbb () from plugins/mysql_static.so
    [23:21:14] [debug] #16 f7245d50 in _ZN16CMySQLConnection6CreateERSsS0_S0_S0_jbb () from plugins/mysql_static.so
    [23:21:14] [debug] #17 f724c816 in _ZN12CMySQLHandle6CreateESsSsSsSsjjb () from plugins/mysql_static.so
    [23:21:14] [debug] #18 f7260ab1 in _ZN6Native13mysql_connectEP6tagAMXPi () from plugins/mysql_static.so
    [23:21:14] [debug] #19 080950e4 in ?? () from ./samp03svr
    [23:21:14] [debug] #20 f67a094b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [23:21:14] [debug] #21 f67a38f8 in ?? () from plugins/crashdetect.so
    [23:21:14] [debug] #22 f67a7916 in amx_Exec () from plugins/crashdetect.so
    [23:21:14] [debug] #23 f679fbe6 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
    [23:21:14] [debug] #24 f67a3659 in ?? () from plugins/crashdetect.so
    [23:21:14] [debug] #25 080a503b in ?? () from ./samp03svr
    [23:21:14] [debug] #26 080ab922 in ?? () from ./samp03svr
    [23:21:14] [debug] #27 080aa0fd in ?? () from ./samp03svr
    [23:21:14] [debug] #28 f7459a83 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6

  • Ich habe eine pauschale Vermutung, und zwar komme ich auf folgendes Zitat aus dem Serverlog zurück:


    [debug] Server crashed while executing mainONLINE.amx

    Dies besagt folgendes:
    "Der Server ist abgestürzt während der Ausführung der mainONLINE.amx"


    Versuche mal das mainONLINE Filterscript bzw. die Datei zu deaktivieren und schaue ob der Fehler immernoch auftritt.


    MfG
    :thumbup:


    Mit freundlichen Grüßen
    German_ScripterHD

  • Erstmal danke für die kurze Einschätzung, ich hatte allerdings vergessen zu erwähnen, dass diese Datei (mainONLINE.amx) mein Gamemode ist, welches nicht ausgeführt wird.
    Dieses möchte ich also nicht deaktivieren, sondern im Gegenteil: Ich möchte, dass es funktioniert!
    Beim Kompilieren gibt es allerdings keine Fehler und ich bin mir sicher, dass es mit diesem MySQL-Plugin zusammenhängt.


    Ohne das "Crashdetect-Plugin" sieht die Log übrigens so aus:


    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3.7-R2, (C)2005-2015 SA-MP Team


    [22:48:51] filterscripts = "" (string)
    [22:48:51]
    [22:48:51] Server Plugins
    [22:48:51] --------------
    [22:48:51] Loading plugin: sscanf.so
    [22:48:51]


    [22:48:51] ===============================


    [22:48:51] sscanf plugin loaded.


    [22:48:51] Version: 2.8.1


    [22:48:51] (c) 2012 Alex "Y_Less" Cole


    [22:48:51] ===============================


    [22:48:51] Loaded.
    [22:48:51] Loading plugin: mysql_static.so
    [22:48:51] >> plugin.mysql: R39-4 successfully loaded.
    [22:48:51] Loaded.
    [22:48:51] Loaded 2 plugins.


    [22:48:52]
    [22:48:52] Filterscripts
    [22:48:52] ---------------
    [22:48:52] Loaded 0 filterscripts.


    Danach folgt nichts mehr wo eig das Gamemode geladen wird :/

  • Wenn das so ist, kann ich das ganz nach vollziehen ;)
    Bitte installiere dir noch folgendes Plugin, dies könnte zur Fehlersuche beitragen.


    nativechecker Plugin

    Habe ich gemacht, hat aber vorerst nichts geändert. Habe immer die "mysql_static.so" verwendet, da die "mysql.so" eine Fehlermeldung ausspuckte:


    [22:14:52] Loading plugin: mysql.so
    [22:14:52] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
    [22:14:52] Loaded 1 plugins.


    Nachdem ich nun wieder auf die "mysql.so" mit nativechecker umgestiegen bin, zeigt mir die log dies an:


    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3.7-R2, (C)2005-2015 SA-MP Team


    [00:20:36] filterscripts = "" (string)
    [00:20:36]
    [00:20:36] Server Plugins
    [00:20:36] --------------
    [00:20:36] Loading plugin: sscanf.so
    [00:20:36]


    [00:20:36] ===============================


    [00:20:36] sscanf plugin loaded.


    [00:20:36] Version: 2.8.1


    [00:20:36] (c) 2012 Alex "Y_Less" Cole


    [00:20:36] ===============================


    [00:20:36] Loaded.
    [00:20:36] Loading plugin: mysql.so
    [00:20:36] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
    [00:20:36] Loading plugin: nativechecker.so
    [00:20:36] Loaded.
    [00:20:36] Loaded 2 plugins.


    [00:20:36]
    [00:20:36] Filterscripts
    [00:20:36] ---------------
    [00:20:36] Loaded 0 filterscripts.


    [00:20:36] Error: Function not registered: 'mysql_connect'
    [00:20:36] Error: Function not registered: 'mysql_close'
    [00:20:36] Error: Function not registered: 'mysql_tquery'
    [00:20:36] Error: Function not registered: 'cache_get_data'
    [00:20:36] Error: Function not registered: 'cache_get_field_content_int'
    [00:20:36] Error: Function not registered: 'mysql_escape_string'
    [00:20:36] Script[gamemodes/mainONLINE.amx]: Run time error 19: "File or function is not found"
    [00:20:36] Number of vehicle models: 0


    Es hilft mir leider nicht sonderlich weiter, da es nur meine Annahme bestätigt, dass es ein Problem mit MySQL hat.
    Die Frage ist nur immer noch welches ?(

  • Dies besagt folgendes das die Funktion mysql_connect nicht verfügbar ist.
    Bitte suche mal nach der Datei a_mysql.inc (Serverordner --> pawno --> include), öffne diese bitte mit dem Editor und schaue ob die Version mit der Version des Plugins übereinstimmen.


    Mit freundlichen Grüßen
    German_ScripterHD

  • Ich habe zwar nicht rausfinden können, welche Version das Plugin hat, allerdings hatte die a_mysql.inc die Versionsnummer R34, woraufhin ich diese als Plugin runtergeladen und reingeschoben habe.
    Leider keine Änderung :/

    • Neuste Version des MySQL Plugin downloaden
    • Nach dem Download die .zip Datei öffnen und das Plugin in den plugins Ordner verschieben
    • Außerdem die "a_mysql.inc" die in dem .zip Archive enthalten ist, in den pawno --> includes Ordner verschieben.
    • Jetzt nochmal das Script öffnen und nochmal neu kompailen.
    • Danach nochmals Server starten und schauen ob der Fehler immernoch auftritt.


    Mit freundlichen Grüßen
    German_ScripterHD

    • Neuste Version des MySQL Plugin downloaden
    • Nach dem Download die .zip Datei öffnen und das Plugin in den plugins Ordner verschieben
    • Außerdem die "a_mysql.inc" die in dem .zip Archive enthalten ist, in den pawno --> includes Ordner verschieben.
    • Jetzt nochmal das Script öffnen und nochmal neu kompailen.
    • Danach nochmals Server starten und schauen ob der Fehler immernoch auftritt.
    • MySQL R39-4 (linux und windows) heruntergeladen
    • mysql.so in den Plugins-Ordner
    • a_mysql aus dem Windows-Verzeichnis in (pawno\includes) [Diese Datei existiert im MySQL-Linux-Verzeichnis gar nicht! Dort ist nur das Plugin zu finden]
    • (Schritt 2 und 3 habe ich sowohl auf meinem Windows-Server als auch auf dem public Linux-Server gemacht)
    • Auf Windows kompiliert (habe kein Pawno auf dem Linux-Server, nur den pawno\includes-Ordner)
    • Den Gamemode erneut hochgeladen
    • Keine Änderung beim Serverstart

    An der Stelle möchte dir persönlich mal ein ganz klares Dankeschön für die Hilfe aussprechen!
    Allerdings bin ich langsam am Verzweifeln woran es liegen könnte :S

  • An der Stelle möchte dir persönlich mal ein ganz klares Dankeschön für die Hilfe aussprechen!
    Allerdings bin ich langsam am Verzweifeln woran es liegen könnte

    Ich helfe gerne ;)
    Aber dein Problem wirft mir auch ein paar Rätsel auf und langsam gehen auch mir die Ideen aus an was es liegen könnte.


    Mit freundlichen Grüßen
    German_ScripterHD

  • Ich denke momentan am ehesten, dass es an dieser Zeile liegt:


    [14:47:02] Loading plugin: mysql.so[14:47:02] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)


    Hierbei scheint nämlich eindeutig etwas am Laden von MySQL zu scheitern, noch bevor das Gamemode scheitert.
    Beim Windows-Server hat man ja eine "libmysql.dll" im Serververzeichnis, welche meiner Vermutung nach dasselbe bewirkt wie
    die offenbar fehlende "libmysqlclient_r.so.16". Ich habe mir auch einmal ein Video angeschaut wie man einen privaten Windows-Server mit MySQL
    zu einem Linux-Server macht und dort existierte eine datei mit dem Namen "libmysqlclient_r.so.15", welche bei mir niemals generiert wurde.
    Ich werde den Server mal neu installieren lassen und gleich schreiben, ob es klappt!
    Hat jemand zufällig eine solche Datei, die mir fehlt, zum Download?


    Edit: Im Anhang ein Bild vom frisch installierten Serververzeichnis

  • Wooow, ich bin erleichtert und enttäuscht zugleich.
    Meine Vorgehensweise:

    • Gamemode raufladen
    • CFG umschreiben (allerdings ohne Plugin-Zeile)
    • mysql.so/mysql_static.so und a_mysql bloß nicht anrühren und so lassen wie es installiert wurde
    • sscanf.so und nativechecker.so in den pluginordner
    • Pluginzeile in CFG nur mit mysql.so -> ERROR im Gamemode
    • nativechecker.so in die CFG geschrieben -> ERROR liegt bei Sscanf (Erleichterung)
    • sscanf.so in die CFG -> Alles funktioniert

    Ich bekomme bei jedem Start einen Sscanf-Error, welcher mich scheinbar aber nicht stört, da alles funktioniert auf den ersten Blick:



    ----------
    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3.7-R2, (C)2005-2015 SA-MP Team


    [15:36:09] filterscripts = "" (string)
    [15:36:09]
    [15:36:09] Server Plugins
    [15:36:09] --------------
    [15:36:09] Loading plugin: mysql_static.so
    [15:36:09] >> plugin.mysql: R39-3 successfully loaded.
    [15:36:09] Loaded.
    [15:36:09] Loading plugin: nativechecker.so
    [15:36:09] Loaded.
    [15:36:09] Loading plugin: sscanf.so
    [15:36:09]


    [15:36:09] ===============================


    [15:36:09] sscanf plugin loaded.


    [15:36:09] Version: 2.8.1


    [15:36:09] (c) 2012 Alex "Y_Less" Cole


    [15:36:09] ===============================


    [15:36:09] Loaded.
    [15:36:09] Loaded 3 plugins.


    [15:36:09]
    [15:36:09] Filterscripts
    [15:36:09] ---------------
    [15:36:09] Loaded 0 filterscripts.


    [15:36:09] Error: Function not registered: 'SSCANF_Init'
    [15:36:09] Error: Function not registered: 'SSCANF_IsConnected'
    [15:36:09] Error: Function not registered: 'SSCANF_Join'
    [15:36:09] Error: Function not registered: 'SSCANF_Leave'
    [15:36:09] Error: Function not registered: 'sscanf'
    [15:36:09]
    ----------------------------------
    [15:36:09] sampONLINE started
    [15:36:09] ----------------------------------


    [15:36:09] Number of vehicle models: 0

  • echo Executing Server Config...
    lanmode 0
    rcon_password *rcon_censored*
    hostname *hostname_censored*
    gamemode0 mainONLINE
    filterscripts
    announce 0
    query 1
    weburl www.nitrado.net
    maxnpc 0
    onfoot_rate 40
    incar_rate 40
    weapon_rate 40
    stream_distance 300.0
    stream_rate 1000
    plugins mysql_static.so nativechecker.so sscanf.so
    language English
    maxplayers 40
    bind *ip_censored*
    bindip *ip_censored*
    port 7777


  • Hmm... das ist komisch, in der server.cfg ist soweit alles richtig.
    Im Serverlog ist mir folgendes aufgefallen:


    [15:36:09] Error: Function not registered: 'SSCANF_Init'
    [15:36:09] Error: Function not registered: 'SSCANF_IsConnected'
    [15:36:09] Error: Function not registered: 'SSCANF_Join'
    [15:36:09] Error: Function not registered: 'SSCANF_Leave'
    [15:36:09] Error: Function not registered: 'sscanf'

    Das bedeutet, er findet die sscanf Funktionen nicht. Das Plugin ist wie ich gesehen habe in der .cfg enthalten, aber du kannst mal schaun ob in deinem Gamemode folgnedes enthalten ist:

    C
    #include <sscanf2>


    Mit freundlichen Grüßen
    German_ScripterHD

  • Zeile ist drin ja und wichtig zu erwähnen ist, dass Sscanf problemlos funktioniert.
    Zwar dennoch beunruhigend, aber solange es läuft, bin ich momentan froh :)

  • Du besitzt einfach eine falsche sscanf Version.
    Du musst dir die richtige Version holen und dein Gamemode erneut compilen, danach sollten die Meldungen in der server Log verschwinden.

    Das hatte ich bereits vermutet, allerdings finde ich keinen Downloadlink, welcher noch funktioniert von einer neuen Version.
    Hat da jemand was?