在过去的一个月里,我一直在使用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兼容性的支持票。谢谢!
答案 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"?