MySQL verbindung im (Firmen)Netzwerk nicht möglich

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von paddy91952.

    MySQL verbindung im (Firmen)Netzwerk nicht möglich

    Guten Mittag alle zusammen :)

    ich habe eine Frage und zwar:
    Zusammen mit einen Kollegen habe ich eine Anwendung geschrieben, welche eine Datenbankabfrage durchführt. Klappt alles soweit super!
    Allerdings haben wir jetzt festgestellt, dass im Firmennetzwerk der Zugriff zur Datenbank verweigert wird. Unser Administrator hat hierfür leider keine Erklärung.

    Deshalb wollte ich euch fragen, ob ihr schonmal ein ähnliches Problem hattet, bzw. eine Idee habt, woran dies liegen könnte.
    Auch für Lösungs- & Änderungsvorschläge bin ich offen :)

    Falls notwendig, hier der Code womit die Verbindung hergestellt wird:

    VB.NET-Quellcode

    1. Dim verbindung As MySqlConnection
    2. verbindung = New MySqlConnection
    3. verbindung.ConnectionString = "server=" + MySqlServer + ";" _
    4. & "user id=" + MySqlID + ";" _
    5. & "password=" + MySqlPasswort + ";" _
    6. & "database=" + MySqlDatabase + ";"
    7. Try
    8. verbindung.Open() ' Verbindung öffnen
    9. Catch Errorcode As MySqlException
    10. MsgBox("Es ist ein Fehler aufgetreten: " & Errorcode.Message.ToString)
    11. End Try
    Hallo

    Der connectionstring ist doch Falsch oder?
    Uid statt user id und Pwd statt password

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Die MySQL.Data.MySQlClient Dll bietet unter anderm auch eine MySqlConnectionStringBuilder Methode, damit hast Du gleich den richtigen Connection String.
    Und lass mal das TryCatch weg, da siehst du dann wo es klemmt.

    Beispiel:

    C#-Quellcode

    1. protected virtual string GenerateConnectionString()
    2. {
    3. MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder();
    4. csb.Server = Server;
    5. csb.UserID = User;
    6. csb.Password = Pass;
    7. csb.Database = DbName;
    8. csb.ConnectionTimeout = (uint)TimeOut;
    9. return csb.ToString();
    10. }
    "Hier könnte Ihre Werbung stehen..."
    Hallo,
    danke erstmal für eure schnellen Antworten.
    Der Connectionstring funktioniert ja, solange ich nicht im Firmennetzwerk bin, daher glaube ich nicht, dass hier das problem liegt. Aber ich ändere diesen dennoch mal ab.

    Folgende Fehlermeldung wird ausgegeben:
    Unable to connect to any of the specified MySQL hosts.
    Kann es sein dass der MySQL Server auf Linux läuft?
    Wenn ja mal in der cnf-Datei des MySQL Server schauen ob der nur auf localhost 127.0.0.1 lauscht oder auch auf die externe IP
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    und, um @MrTrebron noch zu ergänzen... auch darauf achten das der Benutzer auch Zugriff auf localhost hat und nicht nur begrenzt ist auf die externe IP. ein % zeigt an, das er von überall aus zugreifen darf.
    "Hier könnte Ihre Werbung stehen..."
    Sever erlaubt externe Zugriffe, habe ich persönlich noch eingetragen.
    Andernfalls würde der Zugriff per Internet generell nicht möglich sein (einziger Ort, wo diese Meldung ausgegeben wird, ist das Firmennetzwerk).

    *Nachtrag*: Benutzer sind ebenfalls für den externen Zugriff freigeschaltet.

    paddy91952 schrieb:

    Benutzer sind ebenfalls für den externen Zugriff freigeschaltet.


    Das ist uns klar, haste ja oben schon geschrieben, aber Du willst ja keinen externen Zugang, Du willst ja internen Zugang.
    Von daher prüfe ob:
    Benutzer
    Host
    Passwort
    deinBenutzername
    localhost
    Ja

    eingetragen ist.
    "Hier könnte Ihre Werbung stehen..."
    Welche IP verwendest du denn innerhalb des Firmen Netzwerk? Die von der du auch von außerhalb zugreifst?
    Schon mal getraced ob du innerhalb des Firmennetzwerks denn überhaupt bis zum MySQL Server kommst?
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    Läuft auf Port 3306.

    Kurze Erläuterung:
    Egal wo wir das Programm starten, bei mir zuhause, bei einem Kollegen zuhause oder Unterwegs per 4G, es läuft.
    Sobald wir uns im Firmennetzwerk befinden, kommt die Meldung: Unable to connect to any of the specified MySQL hosts.

    Deshalb vermuten wir, dass unser Firmennetzwerk den Zugriff nicht erlaubt. Kann das sein?

    *Nachgetragene Anmerkung*: Wenn ich den externen Zugriff verweigere (Benutzer von % auf localhost) wird mir der Zugriff sowieso verweigert. Ich will ja, egal von welchem Standort dieser Erde per Internet auf meinem MySQL Server zugreifen können. Daher soll der externe Zugriff erlaubt bleiben!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „paddy91952“ ()

    Dann vermute ich, das ihr generell (damit es ohne Anpassung von überall aus funktioniert) über die externe IP geht, da wirst Du in der Firewall etwas einstellen müssen, das die externe IP von intern auf Port 3306 durchgeroutet werden kann...

    EDIT: Du könntest auch auf dem Linux System über IPTables bestimmte IP Adressen frei geben. was steht denn in der /etc/mysql/my.cnf drin?
    Du kannst auch mal

    Quellcode

    1. telnet server_ip 3306
    versuchen.

    "Hier könnte Ihre Werbung stehen..."

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MichaHo“ ()