0

C# と MySQL でシステムを作成していますが、「指定された MySQL ホストのいずれにも接続できません」というイライラするエラーが何度も発生します。さまざまなことを試しましたが、何もうまくいきませんでした。誰かが私を助けてくれませんか?

public bool tryLogin(string username, string password)
    {
        MySqlConnection con = new MySqlConnection("host=hostremoved;user=user_removed;password=passwordremoved;database=databaseremoved;");
        MySqlCommand cmd = new MySqlCommand("SELECT * FROM login WHERE user_name = '" + username + "' AND user_pass = '" + password + "';");
        cmd.Connection = con;
        con.Open();
        MySqlDataReader reader = cmd.ExecuteReader();
        if (reader.Read() != false)
        {

            if (reader.IsDBNull(0) == true)
            {
                cmd.Connection.Close();
                reader.Dispose();
                cmd.Dispose();
                return false;
            }
            else
            {
                cmd.Connection.Close();
                reader.Dispose();
                cmd.Dispose();
                return true;
            }
        }
        else
        {
            return false;
        }
    }

    private void btnlogin_Click(object sender, EventArgs e)
    {
        if (tryLogin(txtuser.Text, txtpass.Text) == true)
        {
            MessageBox.Show("Login worked!");
        }
        else
        {
            MessageBox.Show("Login failed!");
4

3 に答える 3

1

ファイアウォールではなく、データベースがリモート接続をリッスンするように設定されている場合は、指定されたデータベースが指定された IP からの接続を受け入れるようにユーザー資格情報が構成されていることを確認する必要があります。ユーザーが localhost からしか接続できない場合は、root としてログインし、次のような GRANT ステートメントを発行する必要があります。

GRANT ALL ON yourDbName.* TO 'yourUser'@'yourIP' IDENTIFIED BY "yourPassword";

GRANT の使用の詳細については、次を参照してください。

http://dev.mysql.com/doc/refman/5.1/en/grant.html

于 2013-04-21T23:43:39.603 に答える
0

みんな助けてくれてありがとう!ファイアウォールで自分の IP をホワイトリストに登録する必要がありましたが、うまくいきました。

于 2013-04-22T22:24:24.033 に答える
0

ファイアウォールの問題ですか?MySql インスタンスが実行されているマシンが、ファイアウォールを介した接続を受け入れることができることを確認してください。

于 2013-04-21T21:47:24.217 に答える