wake-up-neo.com

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

Ich erhalte die obige Fehlermeldung, wenn ich den Code ausführen -

MySqlConnection mysqlConn=new MySqlConnection("server=127.0.0.1;uid=pankaj;port=3306;pwd=master;database=patholabs;");
        mysqlConn.Open();

Ich habe versucht, Server auf localhost zu setzen, Benutzer auf root, aber ich erhalte folgende Fehlermeldung:

Error: 0 : Unable to connect to any of the specified MySQL hosts.
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.Microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>http://msdn.Microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled</TraceIdentifier><Description>Unhandled exception</Description><AppDomain>DBSync.exe</AppDomain><Exception><ExceptionType>MySql.Data.MySqlClient.MySqlException, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d</ExceptionType><Message>Unable to connect to any of the specified MySQL hosts.</Message><StackTrace>
at  MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at DBSync.MainForm.BtnCalculateClick(Object sender, EventArgs e) in c:\Documents  and Settings\Test01\My Documents\SharpDevelop Projects\DBSync\DBSync\MainForm.cs:line 51
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message&amp;amp; m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message&amp;amp; m)
at System.Windows.Forms.ButtonBase.WndProc(Message&amp;amp; m)
at System.Windows.Forms.Button.WndProc(Message&amp;amp; m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp;amp; m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp;amp; m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp;amp; msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at DBSync.Program.Main(String[] args) in c:\Documents and Settings\Test01\My Documents\SharpDevelop Projects\DBSync\DBSync\Program.cs:line 27</StackTrace><ExceptionString>MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at DBSync.MainForm.BtnCalculateClick(Object sender, EventArgs e) in c:\Documents and Settings\Test01\My Documents\SharpDevelop Projects\DBSync\DBSync\MainForm.cs:line 51
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message&amp;amp; m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message&amp;amp; m)
at System.Windows.Forms.ButtonBase.WndProc(Message&amp;amp; m)
at System.Windows.Forms.Button.WndProc(Message&amp;amp; m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp;amp; m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp;amp; m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp;amp; msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at DBSync.Program.Main(String[] args) in c:\Documents and Settings\Test01\My Documents\SharpDevelop Projects\DBSync\DBSync\Program.cs:line 27</ExceptionString><DataItems><Data><Key>Server Error Code</Key><Value>1042</Value></Data></DataItems></Exception></TraceRecord>

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 bemerkt, dass der Fehler auftritt, wenn ich sharpdevelop verwende und nicht wenn ich Visual Studio verwende.

11
Opax Web

Manchmal Abstand und Reihenfolge der Parameter in Bezug auf Verbindungszeichenfolgen (basierend auf persönlichen Erfahrungen und einer langen Nacht: S)

Also bleib beim Standardformat hier

Server = myServerAddress; Port = 1234; Datenbank = myDataBase; Uid = meinUsername; Pwd = meinPasswort;

13

Da dies das beste Ergebnis bei Google ist:

Wenn Ihre Verbindung anfänglich funktioniert, aber Sie nach vielen erfolgreichen Verbindungen diesen Fehler sehen, kann es sich um dieses Problem handeln.

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

Der Artikel enthält einen Registry-Hack, um das Problem zu beheben ...

Hier sind meine Registrierungseinstellungen unter XP/2003:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort 0xFFFF (DWORD)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort\TcpTimedWaitDelay 60 (DWORD)

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

Unter Vista/2008 können Sie Netsh verwenden, um Folgendes zu ändern:

netsh int ipv4 set dynamicport tcp start=10000 num=50000

... aber die Lösung von real besteht darin, das Verbindungspooling zu verwenden, sodass beim "Öffnen" einer Verbindung tatsächlich eine bestehende Verbindung verwendet wird. Die meisten Frameworks tun dies automatisch, aber in meinem Fall handhabte die Anwendung Verbindungen aus irgendeinem Grund manuell.

Ich führe Mysql auf einem Computer in einem lokalen Netzwerk aus. MySQL Workbench konnte eine Verbindung zu diesem Server herstellen, nicht jedoch meinen c # -Code. Ich habe mein Problem gelöst, indem ich die Verbindung zu einem laufenden VPN-Client getrennt habe.

8
Jimmy

Stellen Sie sicher, dass Ihr Server den Zugriff auf alle mit Ihrer MySQL-Datenbank verbundenen Ports zulässt.

1
Johnbosco Adam

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

MysqlConn.ConnectionString = "Server=127.0.0.1;Database=patholabs;Uid=pankaj;Pwd=master;"

Hoffe das hilft...

1
Murat Yıldız

Wenn Sie mit der localhost-URL auf die Live-Datenbank zugreifen, funktioniert sie nicht. Stellen Sie Ihren Dienst oder Ihre Website unter IIS bereit, erstellen Sie eine URL und greifen Sie mit einer neuen URL auf die Datenbank zu.

0
chavantr

verwenden Sie SqlConnectionStringBuilder, um die Verbindung zu vereinfachen 

System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Initial Catalog"] = "Server";
builder["Data Source"] = "db";
builder["integrated Security"] = true;
string connexionString = builder.ConnectionString;
SqlConnection connexion = new SqlConnection(connexionString);
try { connexion.Open(); return true; }
catch { return false; }
0
Lamloumi Afif

In meinem Fall durch Entfernen des Teils "port = 3306;" aus der Verbindungszeichenfolge löste sich das Problem.

0
kohku

Ich hatte genau den gleichen Fehler.

Folgendes müssen Sie tun:

Wenn Sie MAMP verwenden, schließen Sie Ihren Server. Klicken Sie anschließend auf die Schaltfläche "Einstellungen", wenn Sie MAMP erneut öffnen (vor dem Neustart Ihres Servers).

Dann müssen Sie auf die Registerkarte "Ports" klicken und auf die Schaltfläche "Web- und MySQL-Ports auf 80 & 3306 festlegen" klicken.

0
justinpees

für Benutzer mit VS2013

In Windows 10. 

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

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

stoppen Sie den Dienst. Starten Sie Apache. Starten Sie den Dienst neu.

0
gondwe

Bin gerade auf das gleiche Problem gestoßen. Durch die Installation des .NET-Frameworks auf dem Zielcomputer wurde das Problem behoben.

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

0
Czar Pino

Versuche dies:

MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder();
conn_string.Server = "127.0.0.1";
conn_string.Port = 3306;
conn_string.UserID = "root";
conn_string.Password = "myPassword";
conn_string.Database = "myDB";



MySqlConnection MyCon = new MySqlConnection(conn_string.ToString());

try
{
    MyCon.Open();
    MessageBox.Show("Open");
    MyCon.Close();
    MessageBox.Show("Close");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
0
daniele3004