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' 的访问被拒绝(使用密码:是)

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 回答