Unable to connect to any of the specified mysql hosts как исправить

Unable to connect to any of the specified MySQL hosts C# Решение и ответ на вопрос 1864272

EvilSky

3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

1

30.11.2016, 12:24. Показов 23091. Ответов 10

Метки нет (Все метки)


Пишу лаунчер к программе, завис на форме авторизации, ввожу логин, пароль — выходит ошибка «MySql.Data.MySqlClient.MySqlException || Unable to connect to any of the specified MySQL hosts». Купил домен на nic.ru — там же зашел в phpmyadmin — вот собсно и ошибка. Раньше создавал на локальной БД соединение в phpmyadmin-все работало, эту же таблицу импортировал и в новую бд на nic.ru — ошибка… Почитав форумы, особо ответа не нашел, единственное: проверил telnet на порты — работает только 80, я так понимаю phpmyadmin по жэфолту коннектится на 3306? Может стоит прописать порт — но у меня чот не вышло..вообщем код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace SportPage
{
    public partial class RegPage : Form
    {
        private MySqlConnection connection;
        private RegisPage Reg = new RegisPage();
        public RegPage()
        {
            InitializeComponent();
        }
        #region
        private void db_connect()
        {
            try
            {
                MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
                builder.Server = "дэфолтстраница.mysql";
                builder.UserID = "тотжедэфолт_cms02";
                builder.Password = "pass";
                builder.Database = "db_cms02"; например
                builder.Port = Convert.ToUInt16("80");
               
//это я раньше в локальной бд работал...
/*
                builder.Server = "127.0.0.1";
                builder.UserID = "root";
                builder.Password = "IMBMan1997";
                builder.Database = "SportPage";
               */
               
                connection = new MySqlConnection(builder.ToString());
                connection.Open(); //inserting NEW USER data into User table 
            }
            catch (MySqlException e)
            {
 
                throw;
            }
        }
        private bool login(string Username, string Password)
        {
 
            db_connect();
            MySqlCommand check = new MySqlCommand();
            check.CommandText = "select * from Users Where Username =@User and Password=@Pass";
            check.Parameters.AddWithValue("@User", Username);
            check.Parameters.AddWithValue("@Pass", Password);
            check.Connection = connection;
            MySqlDataReader login = check.ExecuteReader();
            if (login.Read())
            {
                connection.Close();
                return true;
            }
            else
            {
                connection.Close();
                return false;
            }
        }
#endregion
 
      
        private void CloseButton_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
 
        private void Voity_Click(object sender, EventArgs e)
        {
            string Username = NameBox.Text;
            string Password = PassBox.Text;
            if (Username == "" || Password == "")
            {
                MessageBox.Show("Одно или несколько полей оказались незаполненными!");
                return;
            }
            bool r = login(Username, Password);
            if (r)
            {
                MessageBox.Show("УРА");
                MainForm main = new MainForm();
                this.Close();
                main.Show();
            }
            else
                MessageBox.Show("Ошибка входа!");
        }
 
        private void RegButton_Click(object sender, EventArgs e)
        {
            this.Hide();
            Reg.Show();
        }
    }
}

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Администратор

Эксперт .NET

15251 / 12289 / 4905

Регистрация: 17.03.2014

Сообщений: 24,888

Записей в блоге: 1

30.11.2016, 23:52

2

EvilSky, чтобы подключиться к удаленному MySQL серверу нужно знать его IP адрес или DNS имя. На удаленном хосте должны быть разрешены внешние подключения — можно узнать у тех.поддержки. Порт лучше оставить стандартный, но возможно на хостинге может использоваться другой порт — это тоже можно узнать у тех.поддержки.



0



EvilSky

3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

01.12.2016, 11:06

 [ТС]

3

Ну, когда я настраивал хостинг, то установил использование DNS-серверов услуг RU-CENTER как «Хостинг», и он, вроде как, исходит из 3 дэфолтных dns-серверов :
ns3.nic.ru; ns4.nic.ru; ns8.nic.ru. Проверил настройки доступа пользователей к БД — все включено. Ну и про порт я читал, что доступен только 80, но тогда узнаю в поддержке поточней еще…А если необходимо знать dns и ip — где его указать? Нужно менять строку подключения? Единственное я поменял в блоке «Try» строчку

C#
1
 builder.Port = 80;

, но все равно ошибка..

Миниатюры

Unable to connect to any of the specified MySQL hosts
 



0



Администратор

Эксперт .NET

15251 / 12289 / 4905

Регистрация: 17.03.2014

Сообщений: 24,888

Записей в блоге: 1

01.12.2016, 11:16

4

EvilSky, настройки DNS и права доступа для данном вопроса роли не играют.

Цитата
Сообщение от EvilSky
Посмотреть сообщение

А если необходимо знать dns и ip — где его указать?

В параметре server строки соединения.



0



3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

01.12.2016, 11:59

 [ТС]

5

Я там до создания темы смотрел коннекты, но не нашел, как и сейчас подходящей строки



0



Администратор

Эксперт .NET

15251 / 12289 / 4905

Регистрация: 17.03.2014

Сообщений: 24,888

Записей в блоге: 1

01.12.2016, 12:16

6

EvilSky, они в самом начале находятся

MySQL Connector/Net

Standard
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Specifying TCP port
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
The port 3306 is the default MySql port.



0



EvilSky

3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

01.12.2016, 12:27

 [ТС]

7

C#
1
2
3
4
5
 builder.Server = "bdForExample.mysql";
                builder.UserID = "userForExample_mysql";
                builder.Password = "Pass";
                builder.Database = "example_db";
                builder.Port = 80;

ну изначально был такой коннект, только теперь надо заменить строчку

C#
1
builder.Server = "bdForExample.mysql";

на

C#
1
builder.Server = "бла.бла.бла.бла";

или на dns?



0



Администратор

Эксперт .NET

15251 / 12289 / 4905

Регистрация: 17.03.2014

Сообщений: 24,888

Записей в блоге: 1

01.12.2016, 12:41

8

Лучший ответ Сообщение было отмечено EvilSky как решение

Решение

EvilSky, давай для начала разберемся с терминами. У сервера в интернете есть два адреса (упрощенно) — ip адрес и DNS-имя (доменное имя). Например, yandex.ru <-> 77.88.55.60. Преобразование DNS-имени в IP-адрес выполняет DNS-сервер который был указан администратором домена.

В рамках твоей задачи в параметре Server нужно указать адрес сервера — то есть IP адрес или DNS-имя.

Цитата
Сообщение от EvilSky
Посмотреть сообщение

«bdForExample.mysql»

Указание такого имени означает что в сети существует данный домен и значит мы можем набрать команду ping bdForExample.mysql и увидеть ответ подтверждающий что домен существует. Попробуй это сделать и посмотри что тебе скажет ping.



1



3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

01.12.2016, 12:47

 [ТС]

9

Это вы хорошо объяснили, спасибо! Я коннектился по принципу работы с OpenServer, по такому же принципу коннектился, сейчас дошло. Теперь он, вроде как коннектится, но с ошибкой — «Дополнительные сведения: Не удается прочитать данные из транспортного соединения: Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.»



0



Администратор

Эксперт .NET

15251 / 12289 / 4905

Регистрация: 17.03.2014

Сообщений: 24,888

Записей в блоге: 1

01.12.2016, 12:49

10

EvilSky, ошибка говорит что подключение не удалось. Скорее всего данный порт закрыт на стороне хостера. Повторяю свой совет — свяжись с тех. поддержкой хостинга.



1



3 / 3 / 2

Регистрация: 17.11.2014

Сообщений: 193

01.12.2016, 12:51

 [ТС]

11

Да,я тоже об этом подумал. Все-таки задам им вопрос о доступе порта. Спасибо



0



  • Remove From My Forums
  • Question

  • User535994284 posted

    Hi
    I created website in ASP.NET 2.0 and MYSQL.
    MYSQL data base is at remore server. I can connected to MySQL successfully but when I upload my site to Share hosting, it throws following error.
    I think ,On my local m/c I have installed MYSQL management tool so I can connect successfully but on shared hosting, it may not so this error is coming,

    Any clue how can we enable our remote shared host to connect to MYSQL

    [MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
       MySql.Data.MySqlClient.NativeDriver.Open() +1142
       MySql.Data.MySqlClient.Driver.Open() +69
       MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +89
       MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +11
       MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +257
       MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +117
       MySql.Data.MySqlClient.MySqlPool.GetConnection() +113
       MySql.Data.MySqlClient.MySqlConnection.Open() +309
       System.Data.Common.DbDataAdapter.QuietOpen(IDbConnection connection, ConnectionState&amp; originalState) +31
       System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +112
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +287
       System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +92
       ASP.test_aspx.getuser() in d:hosting5454799htmlTestingtest.aspx:25
       ASP.test_aspx.Page_Load(Object sender, EventArgs e) in d:hosting5454799htmlTestingtest.aspx:12
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +50
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesA

Answers

  • User-1315512054 posted

    Hello,

    Check if your ASP.NET MySQL hosting provider do not block remote MySQL connections. Most shared hosting companies
    do not allow remote connections.

    Regards

    • Marked as answer by

      Thursday, October 7, 2021 12:00 AM

  • Remove From My Forums
  • Question

  • Hi all, 

    I have run into an issue and not able to resolve it. 

    There was a requirement to connecting to a MySQL data source. For that I unknowingly added an entry in the «ODBC Data Source Administrator» ->
    User DSN & System DSN 

    I was totally unaware that I am breaking my SP setup (Development). Now Central Admin site and all other sites have stopped working. 

    I tried repairing by re-running the config wizard but no use. Error I get is «An unexpected error has occurred.» OR «Unable to connect to any of the specified MySQL hosts.» 

    But when I try accessing other site, its showing an error from the «machine.config» file: >

    Line 284:    <siteMap>
    Line 285:      <providers>
    Line 286:        <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="LocalMySqlServer" applicationName="/" />
    Line 287:      </providers>
    Line 288:    </siteMap>

    Source File: C:WindowsMicrosoft.NETFramework64v4.0.30319Configmachine.config 

    For record, I have already removed those entries from that User DSN & System DSN.
    Still error persists. 

    If some has ANY IDEA how to resolve it… please help! 


    Regards, Nayan

Answers

  • Hi Nayan,

    I faced the same problem as you encounter. I have Googling for 1 hours. This is the MySQL Connector bugs.  For some solution is to comment out the config in
    machine.config file.

    the path of machine.config file as below

    C:WindowsMicrosoft.NETFramework64v4.0.30319Configmachine.config 

    <!--        <add name="MySqlSiteMapProvider" type="MySql.Web.SiteMap.MySqlSiteMapProvider, 
    
    MySql.Web.v20, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
    
    connectionStringName="LocalMySqlServer" applicationName="/" /> -->

    But this solution not work for me.

    So the next solution is to change the installation file by go to control panel -> program -> select Mysql connector and select change. uncheck the web provider and next all the way. Then the issues resolve. Hope it help.

    Regards,

    RenneHong

    • Marked as answer by

      Wednesday, November 18, 2015 1:06 PM

  • Hi Renne,

    Yes I had ultimately implemented the same workaround to overcome this.

    After commenting many such tags which get added automatically after installing MySQL connector 6.9; our setup starts working again.


    Regards, Nayan

    • Marked as answer by
      Nayan N
      Wednesday, November 18, 2015 1:06 PM

Понравилась статья? Поделить с друзьями:
  • Unable to connect sql server is unavailable or does not exist ssl security error
  • Unable to connect apex legends как исправить
  • Unable to complete network request to host error writing data to the connection
  • Unable to build entity manager factory ошибка фсс
  • Unable to allocate processing resources error failed to create production checkpoint