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

本文关键字:错误 MySqlException Data MySqlClient C#MySql | 更新日期: 2023-09-27 18:26:57

在过去的一个月里,我一直在用一个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兼容性的支持票证被支持人员执行错误。谢谢

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

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

所以看起来您没有进行身份验证:凭据不正确或服务器需要不同的方法。尝试禁用"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();
        }
    }

这应该可以做到

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

它不是应该是"'"而不是"`"围绕着"data_blah"吗?