MySql - Fehlercode 10061

  • Hi Ihr lieben habe ein kleines Spiel im aufbau was ich ganz gerne mit freunden spielen möchte.
    es funktioniert auch. nun wollte ich es so gestallten das ich mit jemand auch online spielen kann also über eine Mysql_DB
    das script zeigt aber jedes mal wenn ich nicht über localhost auf die db zugreifen möchte can´t connect ... (10061) an wenn ich aber alle werte so lasse ausser das ich halt über die lokale ip gehe funktioniert
    hab schon die googlekugel gefragt aber alle hilfen haben mich noch nicht zur lösung geführt.


    Ach Ja die DB liegt auf meinem NAS kann sie auslesen und auch in ihr schreiben aber eben nur lokal habe sie aber aus dem netz erreichbar gemacht über noip



    Bitte helft mir möchte gerne weites wissen erlangen :-)

  • das spiel ist zumindest vom grundaufbau fertig noch icht schön aber es funzt und nebenbei habe ich erstmal ein script was grundsätzlich nur eine testzeile ausliesst oder eine zeile schreibt das funtzt ebenfalls
    so lange es eben lokal ausgeführt wird.


    das MYsql script ist auch nur erstmal um die verbindung zu tetsten und die funktioniert halt nur local mit der öffentlichen ip gibs halt den fehler code 10061 oder 10060


    ich verwalte die DB mit myphpadmin und dort klappt ebenfals alles über den browser auch extern nur das script bockt.



    wie gesagt es geht nicht um das script und dessen formatierung sondern lediglich um die verbindung zu externen DBs oder wie ich sie herrstelle ohne fehler
    also tips die mich voran bringen.
    denn mysql habe ich bisher nie benötigt.
    vielleicht habt ihr auch ahnung vom NAS und ich muss da etwas einstellen obwohl ich regulär auch voon aussen zugreifen kann aber halt nicht auf die DBs mit autoit
    das Nas ist ein NAS-327L falls das relevant wäre.


    ich Danke schon mal im voraaus für jegliche hilfe

  • Hallo,


    Hast du beim Benutzer anlegen in phpmyadmin auch auf die Host-Einstellung geachtet?
    siehe: https://i.ytimg.com/vi/UQtuzr8UIic/maxresdefault.jpg
    Dies sollte auf "Jeder Host" stehen


    Du sprichst von "lokal geht es"; meinst du damit lokal am NAS über phpmyadmin oder in deinem LAN auf deinem PC?


    Die Portweiterleitung an deinem Router hast du auch vorgenommen?


    Tipp für die Zukunft: Ich würde von extern nicht den original MySQL-Port (3306) nehmen sondern einen x-beliebigen über 10000
    Also Extern---Port 12345---Modem/Router---Portweiterleitung von 12345 auf 3306---NAS


    LG Julian

  • Ja benutzer habe ich angelegt auch "JEDER" eingestellt portweiterleitung habe ich noch nicht am router vorgenommen aber das werd ich mal testen aber zu der Frage ob am nas oder am pc
    ich kann im gesammten netzwerk darauf zugreifen, egal ob tablet pc oder notebook aber ich teste das mit der portweiterleitung am router wenn es daran liegt war es ja einfacher als gedacht aber der gedanke mit dem router kamm mir gar nicht nur die firewall vom pc an dem ich das script schreibe.


    Dank dir schon mal für den tip wenn es das war werde ich berichten.

  • Da will ich mich auch mal einbringen, habe jetzt nicht alle Posts gelesen, aber hast du mal probiert mit den Tools für MySQL zum Beispiel MySQL Administrator, auf die DB zuzugreifen?


    Wenn das nicht geht, schau doch mal in den Einstellungen in der mysql.ini ob TCP/IP connections erlaubt sind. (Habe leider nur ein Screenshot vom MySQL Administrator)
    Wenn das aktiv ist und es geht trozdem nicht, liegt es bestimmt an der Netzwerk/Router Konfiguration (Portweiterleitung etc. )


    Gruß gmmg

  • das phpmyadmin geht ist klar weil du halt Port 80 als Weiterleitung im Router eingestellt hast. (Wahrscheinlich auch der Port für das Nas Webinterface) MySQL läuft halt über einen anderen Port, du solltest mal von außerhalb testen welche Ports deines Netzwerkes offen sind. Wie gesagt wenn du 3306 von außen sichtbar machen möchtest leg im Router fest: Portweiterleitung außen (x- beliebigen Port) -> NAS port 3306. Dann ist MySQL von außen halt über den neuen Port verfügbar ( musst du im Programm angeben) wenn du lokal unterwegs bist musst du dann 3306 nehmen, da der Router ja nicht dazwischen ist und "umleitet"
    Gruß Buphx

  • ich danke schon mal für die Hilfe hoffe es klapt mit den settings am router hab da noch nie rumgefummelt, werd mich da wohl erstmal einarbeiten. hab schon bei mir geschaut aber das sieht halt immer anders aus dierekt portweiterleitung als solches hat mein router nicht bei dem gibts etwas das heißt port trigering und ist unter weiterleitung zu finden, ob es das richtige ist werden wohl erstmal lesen müssen. alles mit netztwerk hatte bisher nur geringe aufmerksamkeit erhalten.
    :D

  • ich bin gerade am überlegen und meine gedanke ist wenn ich diese probleme habe hat dann nicht auch der diese schwierigkeiten der am anderen ende des Inet sitzt und mit mir spielt, oder ist das ein denkfehler.
    ich kann ja nicht erwarten das jeder dann in seine porteinstellungen geht, oder?
    gibt es denn sonst die möglichkeiten infos auszutauschen über das internet und diese über ein script ein und auszulesen. habe schon über txtDatei nchgedacht die auf ftp liegt und hin und her geschoben wird.
    oder habt ihr sonst noch ne lösung.


    das spiel selbst braucht eigentlich nur immer die info welcher BTN vom gegner gerade gedrückt wurde. würde es natürlich noch soweit anpassen das ranking usw dann noch gespeichert werden.


    habt ihr sonst ne idee wie das organisiert bekomme?


    danke in jedem fall für die beteiligung.

  • Bin begeistert Danke, Danke, Danke.


    Aber wie gefragt meine sorge ist das der andere Rechner ebenfals das Problem mit den Ports hat. kann ja nicht jedem erklären das er seine ports freigeben muss.
    gebt es sonst noch die möglichkeit über das script den port freizugeben oder liegt es nur hier dran weil die mysql bei mir auf dem nas liegt.
    weil ich hatte es auch mal mit einer freien online Mysql datenbank versucht (db4free) da hatte ich nähmlich das selbe problem.

  • Hallo,


    Du musst dir keine Gedanken machen ob jemand anders auch die Portweiterleitungen machen muss.
    Nur dort wo der Server steht muss das gemacht werden (Stichwort NAT)


    Da die Online-Dienste eigentlich eine fixe statische IP haben sollten (eben kein NAT), solltest du und deine Mitspieler gar kein Problem haben!
    (Der Fehler wird hier wo anders liegen!)


    mfg,
    Julian

  • danke das ist gut zu wissen.
    soweit funzt ja das schreiben und das auslesen jetzt.
    nur eine sache finde ich noch net wie ändere ich einen eintrag in einer zeile also BS: spieler 1 Name;Punkte [Max Mustermann][100] soll jetzt geändert werden in [Max Mustermann][110]
    bisher schreibe ich mit meinem script immer nur eine zeile unten drann mit den selben werten also habe ich 20 zeilen und mehr max Mustermann mit den punkten
    wäre für ein kleines bs dankbar ansonsten danke an alle die mir hier bisher ihre zeit geopfert haben wenn das spiel komplett ist lass ich euch sicher auch am endergebniss teilhaben :-)

  • also es hat sich ein neues problem gestaltet zwar kann ich nun auf meine datenbank zugreifen habe auch von anderen standort versucht kann über mein Handy darauf zugreifen aber das tool das ich erstellt habe bekommt keine verbindung zum server der Datenbank hat jemand einen vorschlag woran das liegen könnte

  • Ich benutze für solche Dinge die _MySQL_Real_Query aud der UDF.


    Mit diesem kannst du das Insert, Select, Update abdecken.


    Ein Beispiel für ein Update wäre zum Beispiel so.


    $sQuery = "UPDATE Tabelle_Spieler SET `Punkte` = '110' WHERE `Spielername` = 'Max Mustermann' "


    die Query dann am Besten mit Consorewrite ($sQuery) mal schreiben und schauen ob die Hochkommas, Leezeichen usw stimmen. Danach mal den String über phpadmin testen.


    unten etwas komplexer :)

    Gruß gmmg

  • Ich packe die Erstellung des Query-Strings immer in eine extra Funktion. Somit ist Aufruf etwas übersichtlicher und auch Querys, die andere Querys enthalten lassen sich einfacher erstellen.

    Code
    1. Func _sSQL_Create($_sSelect, $_vParam='')
    2. Local $sSQL
    3. Switch $_sSelect
    4. Case 'spieler_punkte_set' ; $_vParam = [punkte,spieler]
    5. $sSQL = StringFormat("UPDATE Tabelle_Spieler SET `Punkte` = '%i' WHERE `Spielername` = '%s'", $_vParam[0], $_vParam[1])
    6. Case 'spieler_punkte_get' ; $_vParam = spieler
    7. $sSQL = StringFormat("SELECT `Punkte` FROM Tabelle_Spieler WHERE `Spielername` = '%s'", $_vParam)
    8. EndSwitch
    9. Return $sSQL
    10. EndFunc
  • Danke dir erstmal für die info mit dem realquery ergibt sinn es so zu tun, werde ich dann mal anpassen.


    Doch was kann ich machen damit autoit die verbindung überhaupt herstellt also fakt ist ich kann von aussen (nicht heimnetz) auf die tabelle zugreifen über eine Handyapp kann ich die tabellen anzeigen lassen und auch löschen.
    Aber von aussen mit AUtoit bekomme ich die Verbindung nicht hin :cursing:

  • Teste auf dem Client, auf dem das Autoit Script nicht läuft, ob du eine Verbindung über den MYSQL Administrator (neu Heißt das jetzt Workbench, brauchst du aber zum testen nicht) hinbekommst.


    https://downloads.mysql.com/archives/administrator/ Version 1.1.9 ist die letzte für Windows


    Falls das auch nicht klappt, prüfen ob das Antivirenprogramm/ Firewall auf dem Client etwas blockiert oder aber im Router der Hund begraben ist.
    Alternativ kann man auch mit Wireshark den Netzwerkverkehr mitschneiden und schauen wo es klemmt. Erfordert aber etwas Kenntnis.


    Auf deinem Handy hast du diese Dinge ja sicher nicht drauf oder? Von daher könnte es daran liegen.



    Gruß gmmg