Es konnte keine Verbindung zu einem der angegebenen mysql-Hosts hergestellt werden. C # MySQL

9

Ich erhalte den obigen Fehler, wenn ich den Code ausführe -

%Vor%

Ich habe versucht, Server auf localhost, Benutzer auf root, aber ich bekomme den folgenden Fehler -

%Vor%

Ich kann über mysql workbench eine Verbindung zum mysql-Server herstellen und die Datenbank abfragen. Es ist nur der Code, der nicht funktioniert. Edit: Ich habe festgestellt, dass der Fehler auftritt, wenn ich SharpDevelop benutze und nicht wenn ich Visual Studio benutze.

    
Opax Web 01.08.2013, 12:09
quelle

11 Antworten

9

Manchmal ist der Abstand und die Reihenfolge der Parameter in der Verbindungszeichenfolge wichtig (basierend auf persönlicher Erfahrung und einer langen Nacht: S)

Halten Sie sich also an das Standardformat hier

  

Server = meineServeradresse; Hafen = 1234; Datenbank = myDataBase;   Uid = myUsername; Pwd = meinPasswort;

    
Tamim Al Manaseer 01.08.2013 13:03
quelle
6

Da dies das Top-Ergebnis bei Google ist:

Wenn Ihre Verbindung anfänglich funktioniert, Sie jedoch nach vielen erfolgreichen Verbindungen diesen Fehler sehen, ist dieses Problem .

Zusammenfassend: Wenn Sie eine Verbindung öffnen und schließen, reserviert Windows den TCP-Port aus irgendeinem dummen Grund für zukünftige Verwendung. Nachdem dies viele Male ausgeführt wurde, sind die verfügbaren Ports erschöpft.

Der Artikel gibt einen Registry-Hack, um das Problem zu beheben ...

  

Hier sind meine Registrierungseinstellungen unter XP / 2003:

%Vor%      

Sie müssen sie erstellen. Standardmäßig sind sie nicht vorhanden.

     

Unter Vista / 2008 können Sie netsh verwenden, um etwas wie folgt zu ändern:

%Vor%

... aber die echte Lösung verwendet das Verbindungspooling, sodass das "Öffnen" einer Verbindung tatsächlich eine bestehende Verbindung wieder verwendet. Die meisten Frameworks machen dies automatisch, aber in meinem Fall hat die Anwendung aus irgendeinem Grund Verbindungen manuell verarbeitet.

    
quelle
2

Aktualisieren Sie Ihre Verbindungszeichenfolge wie unten gezeigt (auch ohne port variable):

%Vor%

Hoffe, das hilft ...

    
Murat Yıldız 26.10.2015 15:50
quelle
2

Ich verwende mysql auf einem Computer in einem lokalen Netzwerk. MySQL Workbench konnte eine Verbindung mit diesem Server herstellen, aber nicht mit meinem c # -Code. Ich habe mein Problem gelöst, indem ich die Verbindung zu einem laufenden vpn-Client getrennt habe.

    
Jimmy 16.05.2016 18:37
quelle
0

Verwenden Sie SqlConnectionStringBuilder , um die Verbindung zu vereinfachen

%Vor%     
Lamloumi Afif 01.08.2013 13:22
quelle
0

Ich bin gerade auf dasselbe Problem gestoßen. Die Installation des .NET-Frameworks auf dem Zielcomputer hat das Problem gelöst.

Stellen Sie noch besser sicher, dass alle erforderlichen Abhängigkeiten in der Maschine vorhanden sind, auf der der Code ausgeführt wird.

    
Czar Pino 12.05.2014 06:09
quelle
0

für Benutzer, die VS2013 ausführen

In Windows 10.

Überprüfen Sie, ob der Apache-Dienst ausgeführt wird. seit es durch World Wide Web Service ersetzt wird.

Führen Sie netstat -n aus, um dies zu überprüfen.

Stoppen Sie den Dienst. Apache starten. Starten Sie den Dienst neu.

    
gondwe 05.08.2015 08:35
quelle
0

Manchmal könnte das Problem auf Ihrer Windows-Firewall liegen, stellen Sie sicher, dass Ihr Server den Zugriff auf alle mit Ihrer MySQL-Datenbank verbundenen Ports erlaubt.

    
Johnbosco Adam 08.08.2016 06:39
quelle
0

Versuchen Sie Folgendes:

%Vor%     
daniele3004 03.10.2017 07:53
quelle
0

Ich hatte genau den gleichen Fehler.

Folgendes müssen Sie tun:

Wenn Sie MAMP verwenden, schließen Sie Ihren Server. Klicken Sie dann auf die Einstellungen-Schaltfläche, wenn Sie MAMP erneut öffnen (natürlich vor dem Neustart Ihres Servers).

Dann müssen Sie auf die Registerkarte Ports klicken und den Button "Web- und MySQL-Ports auf 80 & amp; 3306 setzen" anklicken.

    
justinpees 27.09.2017 02:45
quelle
-1
%Vor%

Stellen Sie sicher, dass Ihr Datenbankserver läuft, wenn er nicht läuft, keine Verbindung herstellen kann und mysql standardmäßig auf 3306 läuft, so dass der Port nicht erwähnt werden muss, wenn die Portnummer unterschiedlich ist, dann müssen wir Port     

Shafeek Ajmal 03.11.2014 10:16
quelle