MySQL Verbindung kann nicht hergestellt werden

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
  • Hallo,


    ich möchte meinen Server nun nicht mehr local hosten. Allerdings sind Datenbank & Server IP adresse unterschiedlich. Daher kann ich localhost nicht als Verbindungsziel angeben.


    Gebe ich eine IP mit Richtigen Daten ein, kann er sich nicht verbinden





    stock MySQL_SetupConnection(ttl = 3)
    {
    print("[MySQL] Verbindungsaufbau...");
    //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren
    switch(GetServerVarAsInt("port"))
    {
    case 7777:
    {
    mysql_log(ALL);
    handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    }
    }




    //Prüfen und gegebenenfalls wiederholen
    if(mysql_errno(handle) != 0)
    {
    //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll
    if(ttl > 1)
    {
    //Versuche erneut eine Verbindung aufzubauen
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    return MySQL_SetupConnection(ttl-1);
    }
    else
    {
    //Abbrechen und Server schließen
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    print("[MySQL] Der Server wird heruntergefahren.");
    return SendRconCommand("exit");
    }
    }
    printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    return 1;
    }

  • Sowie du das hast, muss auch nur der Port 7777 sein..die Ip bleibt localhost...da der MySQL Server..ja auch auf dem Root läuft ^^

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    • Offizieller Beitrag

    Kommst du denn überhaupt auf den Server rauf (bspw. mit HeidiSQL oder Navicat)?


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Der MySQL Server liegt aber auf einen anderen Server mit einer anderen ip

    Das geht nicht, das blockiert das MySQL Plugin...


    Samp Server & MySQL Server müssen auf dem selben Host liegen (aus Sicherheitsgründen) :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kommst du denn überhaupt auf den Server rauf (bspw. mit HeidiSQL oder Navicat)?

    Ja ich komme mit NaviCat drauf also der Tunnel dafür ist freigegeben.



    Das geht nicht, das blockiert das MySQL Plugin...
    Samp Server & MySQL Server müssen auf dem selben Host liegen (aus Sicherheitsgründen) :)

    Und es muss doch irgendeine möglichkeit geben das es funktioniert. Denn Hosting Anbieter für SAMP Server bieten das im Grunde so zusammen an

  • Meines Wissens nach blockiert das MySQL Plugin die Verbindung nicht, wäre auch irgendwie sinnlos.


    Letztlich wird es entweder deine Firewall oder die Konfiguration deines Hosters sein, was die Verbindung blockiert, letzteres ist wahrscheinlicher.
    Hier eine Information dazu, wie es damals bei gta-servers.de war: MYSQL extern ??


    Sofern alles frei ist, dann klappt das auch, habe ich selbst schon ausprobiert.
    Allerdings ist es, wie Android beschrieben hat, nicht zu empfehlen.


    Ähnliches habe ich auch in meinem Tutorial dazu beschrieben: [jTuT] MySQL R41 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)

    Externer Zugriff auf MySQL Datenbanken
    Ein externer Zugriff auf einer MySQL Datenbank (SA-MP Server auf Maschine A, MySQL Datenbank auf Maschine B) ist möglich, allerdings ist ein solches Vorgehen nicht zu empfehlen. Warum? Ganz einfach: Die Daten können während der Übertragung abgefangen werden. Natürlich sind das meist keine sensiblen Daten, aber dennoch sollte man sich darüber im Klaren sein. Außerdem, und das ist der ausschlaggebendere Punkt, dauert die Übertragung natürlich seine Zeit. Muss der MySQL Server aus den USA die Daten ins Rechenzentrum nach Frankfurt schicken, dann dauert das einen kurzen Moment (Millisekunden / Sekunden). Kommt es nun mal vor, dass der MySQL Server nicht erreichbar ist, dann hat man ein echtes Problem, denn das bedeutet, dass keine Daten mehr gelesen beziehungsweise geschrieben werden können, was oft zu Fehlern oder gar zum Server-Absturz führt.
    Daher ist es immer empfohlen, die Datenbank auf dem gleichen Server zu betreiben, auf dem auch der SA-MP Server liegt. Dies ist bei den großen Hostern ohnehin automatisch so geregelt.


    Grundsätzlich solltest du mal bei deinem Hoster nachfragen, die können dir wahrscheinlich direkt sagen, ob diese Verbindungen erlaubt sind, oder nicht.

  • Hi @Jeffry ,


    ich spreche dich hier nun mal genau an weil ich dein Tutorial verwende.


    Das ganze habe ich local so wie auch bei einem Hoster getestet. Der Hoster teilt mir mit das es eigentlich kein Problem sei.


    Local kann ich die Firewall ausschließen da ich diese zum Zweck des Test komplett abgestellt habe.


    Eine Portfreigabe ist auf dem HomeServer zu Hause gelenkt und somit auch erreichbar(Exposed Host).


    Deswegen stellt sich mir die Frage warum er nur localhost als Ziel anerkennen kann.


    Über weitere Tipps bin ich sehr dankbar.

    Die Verbindung wird vom PC auf Wamp mit dem Verbinsungsziel localhost übertragen.


    Sobald ich die IP - Adresse als Verbindungsziel angebe, sind die Daten angeblich falsch.


    Portmäßig ist alles Richtig. Hab ein einfaches Login System erstellt was mit der gleichen Datenbank zusammen arbeitet. Da passt alles auch mit der IP - Adresse. Also der Login mit den SAMP Daten ist möglich.


    Daher vermute ich das es irgendwo im Plugin oder Script einen Fehler gibt.



    Von wo nach wo wird die Verbindung herstellt (PC -> Host, Host -> PC, Host -> Host) ?


    Was meinst du damit genau ? Steh gerade aufm Schlauch

  • Datenbank und Server zum Testen laufen auf einem Pc


    Wenn ich den Server aber für die Allgemeinheit öffentlich machen möchte, liegen der SAMP Server und der Datenbank Server getrennt. 2 Verschiedene Server also mit unterschiedlichen IPs

  • Wenn ich nun aber bei einem SAMP Server Hoster meinen Server hosten will, z.b HK-Hosting,


    Erhalte ich eine Datenbank mit einem ganz anderen Verbindungsziel, somit kann ich dann nicht localhost eingeben sondern muss eine IP eingeben.


    Und das ist mein Problem was ich habe. Er kann sich in dem Fall nicht verbinden. Auch 127.0.0.1 funktioniert als Verbindungsziel Lokal nicht. Also gehe ich bisher davon aus das irgendwas aus dem Script oder Plugin blockiert.



    Würde ich nur local hosten wäre mir das Wumpe. Aber ich will den SAMP Server nicht zuhause hosten so das mein PC 24/7 an sein muss.

  • Ich habe jetzt nicht alles gelesen, aber man kann auf eine MySQL DB auch von außerhalb zugreifen. Dafür müssen die Rechte für diese DB aber entsprechend gesetzt sein. Localhost bedeutet ja nur, daß sich die MySQL DB auf dem selben System befindet wie z.B. PHP oder eben auch der SA-MP Server. Wenn Localhost nicht geht, gib anstelle 127.0.0.1 oder eben Localhost mal die IP des Servers ein, auf dem die MySQL DB läuft. Funktioniert die Verbindung nicht, liegt es eventuell an den Rechten (Serveradmin bescheid geben oder selber ändern, wenn möglich).


    Auf meinem vServer kann ich dies unter PLESK selber einstellen.

  • Es ist alles Richtig mit den Verbindungen eingestellt.


    Server soll sich zu einer IP Adress bei mir zu Hause verbinden. Exposed Host aktiviert und Firewall deaktiviert somit ist eig alles getan um der Verbindunh freien lauf zu lassen.


    Hinzu funktioniert ein Login System mit den gleichen Verbindungsdaten. Alles etwas Spanisch X/

  • Ich bin grad bei HK-Hosting drauf, da du diesen als Beispiel angegeben hast. Auch die bieten SAMP in Verbindung mit einer MySQL DB an. Auch dort sollte es per localhost gehen. Da ich selber z.B. das Plugin von Adrenaline benutze, funktioniert localhost bei mir komischerweise nicht. Daher benutz ich die IP Adresse meines vServers. Und wie schon geschrieben wurde von @Jeffry sollten beide System (SAMP Server und MySQL DB) auf dem selben System liegen. Um nun zu testen, ob die DB auch ansprechbar ist, kann man dies auch per Konsole (Google bitte benutzen dafür) oder per PHPMyAdmin (sofern PHP und Webserver installiert sind) nutzen.