У меня странная проблема с подключением к MySQL. Моя среда
ОС — Microsoft Windows Home Basic
IDE — SharpDevelop 4.3.3.9663Сервер MySQL — 5.5
Соединитель MySQL — 6.8.3
Я создал пример программы, которая подключается к серверу MySQL на моей машине.
using System;
using MySql.Data.MySqlClient;
namespace TestBed
{
class Program
{
private static MySql.Data.MySqlClient.MySqlConnection conn;
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
connect();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
public static void connect()
{
string myConnectionString;
//myConnectionString = "Server=localhost; Port=3306; Database=test; Uid=root; Pwd=Welcome01;"; //works fine in rel mode
myConnectionString = "Server=127.0.0.1; Port=3306; Database=test; Uid=root; Pwd=Welcome01;";
try
{
conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
conn.Open();
Console.WriteLine("opened");
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Сначала я получал следующую ошибку.
MySql.Data.MySqlClient.MySqlException: Unable to connect to any of the specified MySQL hosts.
at System.Void MySql.Data.MySqlClient.NativeDriver.Open()
at System.Void MySql.Data.MySqlClient.Driver.Open()
at static Driver MySql.Data.MySqlClient.Driver.Create(MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings)
at Driver MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at Driver MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at Driver MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at Driver MySql.Data.MySqlClient.MySqlPool.GetConnection()
at System.Void MySql.Data.MySqlClient.MySqlConnection.Open()
at static System.Void TestBed.Program.method() in ...\TestBed\Program.cs:line 36
at static System.Void TestBed.Program.Main(System.String[] args) in ...\Program.cs:line 19
Я получил подсказку по этой ссылке (Не удается подключиться к MySQL при использовании режима отладки) и попытался использовать режим Release. Удивительно, но он смог открыть соединение!
Я проанализировал его немного больше и нашел следующие вещи.
- Он выдает ошибку, только если я использую Debug-> Step over (используя клавиши F10 для пошаговой отладки)!
- Если я просто запускаю приложение в режиме отладки, оно подключается.
- Я могу ставить точки останова выше и ниже метода "connect()"
- Я также могу использовать переход (с клавишей F10) для отладки других частей приложения, но если я использую переход в этот метод, это занимает много времени и выдает ту же ошибку.
Я не уверен, что я делаю что-то не так, или это ошибка MySQL или SharpDevelop. Кто-нибудь сталкивался с такой проблемой? Если возможно, кто-нибудь, пожалуйста, пролейте свет на это?
Спасибо, Ганеш Периасами.