C#MySql.Data.MySqlClient.MySqlException无故错误

时间:2014-10-18 22:02:05

标签: c#

在过去的一个月里,我一直在使用C#程序与公司的API一起获取数据。就在昨天,突然它不再有效,即使我根本没有改变代码。这是代码:

    public string GetMatchCode()
        {
            //this could be loaded from config file or other source
            string connectString = "Server=123.123.1.23;Database=blah_users;Uid=blah_data;Pwd=blahblah;";
            string sql = "SELECT MAX(match_id) FROM `data_blah`";
            using (var connect = new MySqlConnection(connectString))
            using (var command = new MySqlCommand(sql, connect))
            {
                connect.Open();
                return command.ExecuteScalar().ToString();
            }
        }

我收到了这个错误:

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: Access denied for user 'blah_data'@'cpe-86-80-21-54.san.res.rr.com' (using password: YES)

知道可能发生了什么以及如何解决这个问题?我认为唯一可能发生的事情是支持员工执行错误处理node.js兼容性的支持票。谢谢!

3 个答案:

答案 0 :(得分:1)

您的db用户权限失败。用户可能已被删除;权限可能已被修改。联系数据库所有者。

答案 1 :(得分:1)

因此看起来您没有进行身份验证:不正确的凭据或服务器需要不同的方法。尝试禁用" sslmode"如下所示:

 public string GetMatchCode()
    {
        //this could be loaded from config file or other source
        string connectString = "Server=123.123.1.23;Database=blah_users;Uid=blah_data;Pwd=blahblah;sslmode=none;";
        string sql = "SELECT MAX(match_id) FROM `data_blah`";
        using (var connect = new MySqlConnection(connectString))
        using (var command = new MySqlCommand(sql, connect))
        {
            connect.Open();
            return command.ExecuteScalar().ToString();
        }
    }

应该这样做

答案 2 :(得分:0)

string sql = "SELECT MAX(match_id) FROM `data_blah`";

它不应该是" ' "而不是" `"周围" data_blah"?