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

是防火墙问题吗?检查运行 MySql 实例的机器是否能够接受通过防火墙的连接。

于 2013-04-21T21:47:24.217 回答
0

感谢大家的帮助!我必须在我的防火墙上将我的 IP 列入白名单,它起作用了!

于 2013-04-22T22:24:24.033 回答