2017-08-23 3 views
0

この問題に関する多くの投稿を見ていましたが、回答が見つかりませんでした。私はいくつかのサーバー上に存在するMySQLのDBに接続しようとC#リモートのmysqlデータベースと接続中にエラーが発生しました "指定されたMySQLホストに接続できません"

、私はhttps://www.connectionstrings.com/sql-server-2014/https://www.codeproject.com/Articles/43438/Connect-C-to-MySQL

private string server = "xx.xxx.xxx.xx"; 
private string database = "testDB"; 
private string username = user; 
private string password = password; 
string connectionString; 
connectionString = string.Format("Server={0},3306; Database= 
{1}; User Id={2}; password={3};", server, database, username, 
password); 

connection = new MySqlConnection(connectionString); 
try 
{ 
    connection.Open(); 
} 
catch (MySqlException ex) 
{ 
    return false; 
}  

から、次のコードを使用し私はnugetコンソールからMySql.Data.dllをインストールし、ポート3306を開きます( tcp)を使用します。

接続を開こうとすると、「指定されたMySQLホストに接続できません」というエラーが表示されます。

誰かがなぜアイデアを持っていますか?

ありがとうございました

+2

コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/152607/discussion-on-question-by-tal-sshh-c-connecting-with-remote-mysql-database-get) 。答えることができる状態に質問を釘付けようとするために必要とされた膨大な数のコメントから明らかなように、ここでは詳細が十分ではありません。 –

+0

私は受け入れられる答えがあるので、私はこの質問を再び開くように投票しました。 – Fildor

答えて

4

接続文字列が正しくフォーマットされていません。 エントリをカンマで区切ると、複数のサーバーが存在することがわかりますが、明らかにそうではありません。ポートを指定する必要がある場合は、してみてください:

connectionString = string.Format("Server={0}; Port=3306; Database= 
{1}; Uid={2}; Pwd={3};", server, database, username, 
password); 

しかし3306は、MySQLサーバが接続を受け入れる上のデフォルトポートであるとして、それは必要ありません。 ここにmore examplesがあります。

+0

また、「ユーザーID」は「Uid」で、「パスワード」は「Pwd」でなければなりません... – Fildor

+0

は依然として機能しません! –

+0

@Fildor素敵なキャッチ - ありがとう。私は自分の答えを更新しました。 –

0

接続文字列は実際には問題ありません。

問題はMySqlConnectionです。 MySQLではなく、MS SQL Serverを使用しています。

SqlConnectionの代わりに名前空間System.Data.SqlClientを使用する必要があります。

あなたのポートは、デフォルトのMySQL-Portであるため、おそらく正しくありません。ポートを外してみると、MS SQL Serverのデフォルトポートを使用しようとします。

関連する問題