Imansible connettersi a nessuno degli host mysql specificati. C # MySQL

Sto ottenendo l’errore di cui sopra quando eseguo il codice –

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

Ho provato a impostare il server su localhost, utente su root ma ottengo il seguente errore-

 Error: 0 : Unable to connect to any of the specified MySQL hosts. System.Transactions Critical: 0 : http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledUnhandled exceptionDBSync.exeMySql.Data.MySqlClient.MySqlException, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44dUnable 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& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& 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 27MySql.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& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& 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 27Server Error Code1042 

Posso connettermi al server mysql attraverso mysql workbench e interrogare il database. È solo il codice che non funziona. Modifica: ho notato che l’errore si verifica quando sto usando sharpdevelop e non quando sto usando Visual Studio.

A volte la spaziatura e l’ordine dei parametri nella stringa di connessione sono importanti (in base all’esperienza personale e a una lunga nottata: S)

Quindi attenersi al formato standard qui

Server = myServerAddress; Port = 1234; Database = MyDatabase; Uid = myusername; Pwd = password;

Poiché questo è il risultato migliore su Google:

Se la tua connessione funziona inizialmente, ma inizi a vedere questo errore dopo molte connessioni riuscite , potrebbe essere questo il problema .

In breve: se si apre e si chiude una connessione, Windows riserva la porta TCP per un utilizzo futuro per qualche motivo stupido. Dopo aver fatto questo molte volte, si esaurisce le porte disponibili.

L’articolo fornisce una modifica del Registro di sistema per risolvere il problema …

Ecco le mie impostazioni di registro su 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) 

Devi crearli. Di default non esistono.

Su Vista / 2008 puoi usare netsh per cambiarlo in qualcosa di simile:

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

… ma la vera soluzione è usare il connection pooling, in modo che “aprendo” una connessione riutilizzi davvero una connessione esistente. La maggior parte dei framework lo fa automaticamente, ma nel mio caso l’applicazione gestiva manualmente le connessioni per qualche motivo.

Sto eseguendo mysql su un computer su una rete locale. MySQL Workbench potrebbe connettersi a quel server, ma non il mio codice c #. Ho risolto il problema disconnettendo da un client VPN in esecuzione.

Aggiorna la stringa di connessione come mostrato di seguito (anche senza variabile di port ):

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

Spero che questo ti aiuti…

utilizzare SqlConnectionStringBuilder per semplificare la connessione

 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; } 

Ho appena incontrato lo stesso problema. L’installazione del framework .NET sulla macchina di destinazione ha risolto il problema.

Ancora meglio, assicurati che tutte le dipendenze richieste siano presenti nella macchina su cui verrà eseguito il codice.

per gli utenti che eseguono VS2013

In Windows 10.

Controlla se il servizio Apache è in esecuzione. dal momento che viene sostituito con il servizio World Wide Web.

eseguire netstat -n per verificare questo.

interrompere il servizio. inizia apache. riavviare il servizio.

A volte il problema potrebbe essere sul tuo Windows Firewall, assicurati che il tuo server permetta l’accesso a tutte le porte associate al tuo database mysql.

Prova questo:

 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); } 

Stavo avendo lo stesso errore.

Ecco cosa devi fare:

Se stai usando MAMP, chiudi il tuo server. Quindi fare clic sul pulsante delle preferenze quando si apre di nuovo MAMP (prima di riavviare il server ovviamente).

Quindi sarà necessario fare clic sulla scheda delle porte e fare clic sul pulsante “Imposta porte Web e MySQL su 80 e 3306”.

 using System; using System.Linq; using MySql.Data.MySqlClient; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // add here your connection details String connectionString = "Server=localhost;Database=database;Uid=username;Pwd=password;"; try { MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); Console.WriteLine("MySQL version: " + connection.ServerVersion); connection.Close(); } catch (Exception ex) { Console.WriteLine(ex); } Console.ReadKey(); } } } 

assicurati che il tuo server di database sia in esecuzione se non è in esecuzione, quindi non è in grado di effettuare la connessione e mysql di default su 3306 quindi non è necessario menzionare la porta se la stessa in caso di numero di porta è diversa, allora dobbiamo menzionare la porta