Ошибка подключения к MySQL в режиме отладки

У меня странная проблема с подключением к 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. Удивительно, но он смог открыть соединение!

Я проанализировал его немного больше и нашел следующие вещи.

  1. Он выдает ошибку, только если я использую Debug-> Step over (используя клавиши F10 для пошаговой отладки)!
  2. Если я просто запускаю приложение в режиме отладки, оно подключается.
  3. Я могу ставить точки останова выше и ниже метода "connect()"
  4. Я также могу использовать переход (с клавишей F10) для отладки других частей приложения, но если я использую переход в этот метод, это занимает много времени и выдает ту же ошибку.

Я не уверен, что я делаю что-то не так, или это ошибка MySQL или SharpDevelop. Кто-нибудь сталкивался с такой проблемой? Если возможно, кто-нибудь, пожалуйста, пролейте свет на это?

Спасибо, Ганеш Периасами.


person Ganesh Periasamy    schedule 14.02.2014    source источник


Ответы (2)



Хорошо. Об этом сообщается как об ошибке в отладчике SharpDevelop Debugger (http://community.sharpdevelop.net/forums/t/16473.aspx), но нет ответов от команды SharpDevelop около года! Я свяжусь с ними и постараюсь обновить эту ветку, если я ее получу.

person Ganesh Periasamy    schedule 14.02.2014