C# MySQL查询“SELECT命令拒绝给用户…”失败,但用户有权限
我有一个MySQL数据库,我在其中创建了一个新的用户帐户,如下所示:C# MySQL查询“SELECT命令拒绝给用户…”失败,但用户有权限,c#,mysql,C#,Mysql,我有一个MySQL数据库,我在其中创建了一个新的用户帐户,如下所示: CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT SELECT ON database.* TO 'username'@'%'; 运行“用户名”的显示将确认以下权限: GRANT USAGE ON *.* TO 'statstracker'@'%' IDENTIFIED BY PASSWORD 'passwordhash' GRANT SELECT ON `
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT SELECT ON database.* TO 'username'@'%';
运行“用户名”的显示将确认以下权限:
GRANT USAGE ON *.* TO 'statstracker'@'%' IDENTIFIED BY PASSWORD 'passwordhash'
GRANT SELECT ON `database`.* TO 'username'@'%'
我可以通过MySQL Workbench连接到数据库并从该用户帐户进行查询。我甚至可以通过MySQL Workbench从网络上的另一台主机进行连接,但当我尝试在我的程序中进行连接时,它失败了,出现以下错误:
为表“tablename”选择拒绝用户“username”@“hostname”的命令
下面是我非常简单的测试代码:
String str = @"server=serverip;database=databasename;userid=username;password=password;";
MySqlConnection con = null;
try
{
con = new MySqlConnection(str);
MySqlCommand cmd = new MySqlCommand("SELECT ID FROM `database`.`table`", con);
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
Console.WriteLine(dr["ID"]);
}
}
catch (MySqlException err)
{
Console.WriteLine("Error: " + err.ToString());
}
finally
{
if (con != null)
{
con.Close();
}
}
有人对我如何解决这个问题有什么建议吗
编辑:更多信息
如果我不尝试进行选择并仅打开连接,则连接将正常打开:
String str = @"server=serverip;database=databasename;userid=username;password=password;";
MySqlConnection con = null;
try
{
con = new MySqlConnection(str);
con.Open();
Console.WriteLine("Opened Just Fine");
}
catch (MySqlException err)
{
Console.WriteLine("Error: " + err.ToString());
}
finally
{
if (con != null)
{
con.Close();
}
}
此外,我还使用了第一个代码段,即针对不同主机上的不同MySQL服务器使用select的代码段,该代码段创建了一个类似的用户帐户,并且工作正常。这是否意味着我的代码很好,这是一个配置问题?如果是这样的话,我应该看什么样的东西来找出到底发生了什么?也许是什么?考虑到这一点,但当我能够从工作台连接时,凭证就在那里。。。另外,引用您链接的页面:对于创建用户,刷新权限是不必要的。。。但是谢谢你的建议