无法使用C#连接到mysql数据库

时间:2012-06-30 17:25:28

标签: c# mysql

我试图连接到我的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)

2 个答案:

答案 0 :(得分:0)

看起来像权限(权限)的问题..你可以通过连接它与你的本地数据库确认它..如果它与你的本地数据库一起工作那么肯定是一个许可问题

答案 1 :(得分:0)

我认为您的用户joeysft57_app无权从指定的计算机访问数据库 您需要连接到数据库的管理员界面并提供所需的权限

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

或要求数据库管理员为您执行此操作。

编辑:改变了一些东西, 首先使用通配符%让用户从任何PC连接 第二个定义了将在您的连接字符串中使用的通用用户,因此您的用户使用相同的用户/密码连接所有用户。当然,从安全角度来看,这并不是很好。但这是你的选择。

如果数据库位于运行应用程序的同一台计算机上,那么您也可以使用localhost而不是%快捷方式。 (更安全)