2014-07-21 3 views
0

MySQL 데이터베이스를 사용하여 데이터를 저장하는 C# (.NET 4.0) 응용 프로그램을 만듭니다. 이 데이터베이스는 타사 회사의 서버에 설치되며 응용 프로그램은 현재 도메인 이름 (myname.home.pl)으로 원격으로 연결해야합니다.C# MySQL - 원격 연결

또한 동일한 데이터베이스를 사용하는 웹 사이트가 있으며이 웹 사이트는 동일한 서버에 있으므로 localhost가 DB에 연결합니다.

웹 사이트는 항상 올바르게 작동하며 연결에 문제가 없습니다.

일반적으로 C# 응용 프로그램도 성공적으로 연결되지만 연결이 열리지 않을 수 있으며 연결 시간 초과 후 "지정한 MySQL 호스트 중 하나에 연결할 수 없습니다"오류가 반환됩니다. 나는 그러한 오류의 원인이 무엇인지 모릅니다.

이 문제는 Windows XP 및 Windows 7에서 발생하며 다른 OS 버전은 테스트하지 않았습니다.

연결 문자열 형식 다음에 (SQLDATA 구조체는 로그인 데이터를 포함) :

connection.ConnectionString = String.Format(
    "server={0};database={1};user='{2}';password='{3}';", 
    sqlData.Server, 
    sqlData.Catalog, 
    sqlData.User, 
    sqlData.Password 
); 

내가 유래에이 오류에 대한 몇 가지 주제를 찾을 것이 아니라 해결되지했습니다 ...

사람이 있었나요 비슷한 문제? 그 이유가 무엇일까요? 또는 어떻게하지 않을 수 있습니까?

어떤 도움을 주셔서 감사합니다.

+0

예외 (오류 코드, 기타 내부 예외) 및 서버 측 로그를 확인해야합니다. 이렇게 ... 안개 속에서 총을 맞고 있습니다. 일반적으로 인터넷을 통해 이동하는 경우 try/retry 패턴을 설정해야합니다 (더 짧은 시간 제한으로 첫 번째 시도). –

+0

Liekly 네트워크 관련 – Tsukasa

+0

exc.ToString()은 다음 정보 만 제공합니다. \t MySql.Data.MySqlClient.MySqlException (0x80004005) : 지정된 MySQL 호스트 중 하나에 연결할 수 없습니다. MySql.Data.MySqlClient.Driver.Create에서 MySql.Data.MySqlClient.Driver.Open() 에서 MySql.Data.MySqlClient.NativeDriver.Open() (MySqlConnectionStringBuilder 설정) 에서 MySql.Data.MySqlClient.MySqlPool에서 MySql.Data.MySqlClient.MySqlConnection.Open에서 MySql.Data.MySqlClient.MySqlPool.GetConnection()에서 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()에서 .GetPooledConnection() () – user3860515

답변

-2

MySql.Data.MySqlClient.MySqlException (0x80004005) : 지정된 MySQL 호스트 중 하나에 연결할 수 없습니다.

em MySql.Data.MySqlClient.NativeDriver.Open() 

    em MySql.Data.MySqlClient.Driver.Open() 

    em MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) 

    em MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 

    em MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 

    em MySql.Data.MySqlClient.MySqlPool.GetConnection() 

    em MySql.Data.MySqlClient.MySqlConnection.Open() 

    em EasylockControl.Login.button1_Click(Object sender, EventArgs e) 

    em System.Windows.Forms.Control.OnClick(EventArgs e) 

    em System.Windows.Forms.Button.OnClick(EventArgs e) 

    em System.Windows.Forms.Button.PerformClick() 

    em System.Windows.Forms.Form.ProcessDialogKey(Keys keyData) 

    em System.Windows.Forms.Control.ProcessDialogKey(Keys keyData) 

    em System.Windows.Forms.Control.PreProcessMessage(Message& msg) 

    em System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg) 

    em System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)