7 Antworten

  1. avatar
    Gotthard Augst
    18 Januar, 2015

    Frage zu MySql-Zugriff mit C# auf Web-Datenbank:

    Aufruf funktioniert:
    MySqlConnection conn = new MySqlConnection(“SERVER=localhost; DATABASE=db; UID=uid; PASSWORD=pw”);
    conn.Open();

    Aufruf funktioniert aus dem C#Programm nicht, obwohl ich mit den gleichen Parametern z.B. MySqlHeidi DB-Zugriff bekomme:

    MySqlConnection conn = new MySqlConnection(“SERVER=mysql.1blu.de; DATABASE=db; UID=uid; PASSWORD=pw”);
    conn.Open();

    Müssen im C#Programm noch irgendwelche Web-Instanzen zwischengeschaltet werden?
    Ich war der Annahme, dass using MySql.Data.MySqlClient genügt?

    Antworten

    • avatar
      Pascal
      18 Januar, 2015

      Hallo Gotthard,

      ansich sollte das using ausreichen und der String auch korrekt sein. Kommt denn eine Exception? Was sagt diese?
      Host, User / Password sind korrekt?

      Antworten

  2. avatar
    Gotthard Augst
    18 Januar, 2015

    Danke für den ersten Hinweis.
    Nachdem ich das try-catch entfernt habe und entsprechend der Fehlermeldung
    „MySql.Data.MySqlClient.MySqlException (0x8000405) Authentification with old passsword no longer supported, use 4.1 style passwords” das Passwort geändert habe, klappt es noch immer nicht.

    Kann es an der Version der …\MySQL\MySQL Connector Net 6.9.5\Assemblies\v4.0\MySql.Data.dll liegen?

    Mein Provider 1blu verwendet MySql 5, meine locale Datenbank 5.1.53.
    Bei der Installation durch WAMPP wurden für dieser Datenbank nun verschiedene Assemblies unter V2.0, v.4.0 und v.4.5 bereit gestellt. Ich hatte mich für v4.0 entschieden. Woran kann man die richtige erkennen?

    Antworten

    • avatar
      Pascal
      18 Januar, 2015

      Ich habe mal eben nach der Exception gegooglet und folgenden Beitrag gefunden: http://stackoverflow.com/questions/15772479/authentication-with-old-password-no-longer-supported-use-4-1-style-passwords

      Versuch mal auf der Datenbank folgende auszuführen (vorher natürlich ein Backup machen!!)

      SET old_passwords=0;
      SET PASSWORD FOR user@host = PASSWORD('password');

      Oder du probierst folgendes:
      The solution in my case was to change the MySql Connector/NET library from version 6.* to version 5.*. After the change my application connected successfully.

      Die Datenbankversion und MySqlversion hat nichts mit der .Net Version (2.0 / 4.0 / 4.5) zu tun 🙂
      v4.0 sollte schon in Ordnung sein.

      Habe hier noch was von MySql gefunden: http://forums.mysql.com/read.php?38,593423,593431#msg-593431
      Laut denen wird ein “old password” in der neuen Version vom Connector nicht mehr unterstützt und man soll (sofern man das unsichere Verfahren nutzen möchte) eine ältere Version vom Connector verwenden.

      Antworten

  3. avatar
    Gotthard Augst
    20 Januar, 2015

    Danke für Deine Unterstützung!
    Die Datenbankverbindung zu meiner MySql-Datenbank bei 1blu aus einem C#Programm heraus funktioniert nun mit MySQL Connector Net 6.9.5 v4.0 und
    MySqlConnection conn = new MySqlConnection(“SERVER=server; DATABASE=database; UID=uid; PASSWORD=41verschlüsseltespassword”);
    Bei 1blu kann man die Passwortverschlüsselung im Kundenbereich selbst einstellen, was den obigen SET-Befehlen entspricht, sodass der Fehler „Authentication with old password no longer supported, use 4.1 style passwords“ nicht mehr auftritt.

    Antworten

    • avatar
      Pascal
      20 Januar, 2015

      Gerne! Und vielen Dank für die Auflösung des Fehlers! Schön das es jetzt geklappt hat 😀

      Antworten

  4. avatar
    Kevin Bollinger
    19 November, 2017

    Hallo ich habe mir das gerade mal durchgelesen.
    diese variante funktioniert zwar aber ich sehr sehr unsicher.
    Das mit dem “unsicher” stimmt insofern, dass man mit Tools wie JustDecompile das ganze dekompilieren kann und das Passwort im klartext sehen kann.

    meine frage wäre jetzt.
    wie erstelle ich eine sichere variante dazu ?

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Zum Seitenanfang
Mobil Desktop