1

mysqlデータベースに接続しようとしていますが、何もうまくいかないようです。
私は夢中になっています。インターネットを約3時間続けて検索しましたが、私にとって有用なものは何も見つかりませんでした。どうか、誰か助けてもらえますか?

これは私がこれまでに持っているコードです:

public bool tryLogin(string username, string password)
        {
            MySqlConnection con =
                new MySqlConnection("Server=159.253.0.3;Database=dbname;Uid=username;Pwd=password;"); // Removed the login info.
            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())
            {
                if (reader.IsDBNull(0))
                {
                    cmd.Connection.Close();
                    reader.Dispose();
                    cmd.Dispose();
                    return false;
                }
                else
                {
                    cmd.Connection.Close();
                    reader.Dispose();
                    cmd.Dispose();
                    return true;
                }
            }
            else
            {
                return false;
            }
        }

これは私が得続けるエラーです:

ユーザー'joeysft57_app'@ '53569B33.cm-6-7c.dynamic.ziggo.nl'のアクセスが拒否されました(パスワードを使用:YES)

4

2 に答える 2

0

権限の問題のように見えます(権利)。ローカルデータベースに接続することで確認できます。ローカルデータベースで動作している場合は、確実に権限の問題です。

于 2012-06-30T17:37:14.850 に答える
0

joeysft57_app指定したコンピューターからデータベースにアクセスする権限がユーザーにないと思います。
データベースの管理者インターフェースに接続し、必要な権限を与える必要があります

GRANT USAGE ON *.* TO myAppUser@%  IDENTIFIED BY 'yourpass';
GRANT ALL PRIVILEGES ON serverdb.* to myAppUser@%

または、データベース管理者にこれを行うように依頼してください。

編集:何かを変更しました。最初にワイルドカード%を使用して、ユーザーが任意のPCから接続できるようにし、次に接続文字列で使用される汎用ユーザーを定義して、ユーザーがすべて同じユーザー/パスワードで接続できるようにしました。もちろん、これはセキュリティの観点からはあまり良くありません。しかし、それはあなたの選択です。

データベースがアプリケーションを実行しているのと同じマシン上にある場合は、ショートカットlocalhostの代わりに使用することもできます。%(より安全に)

于 2012-06-30T17:37:35.143 に答える