Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySQL查询“SELECT命令拒绝给用户…”失败,但用户有权限_C#_Mysql - Fatal编程技术网

C# MySQL查询“SELECT命令拒绝给用户…”失败,但用户有权限

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 `

我有一个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 `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的代码段,该代码段创建了一个类似的用户帐户,并且工作正常。这是否意味着我的代码很好,这是一个配置问题?如果是这样的话,我应该看什么样的东西来找出到底发生了什么?

也许是什么?考虑到这一点,但当我能够从工作台连接时,凭证就在那里。。。另外,引用您链接的页面:对于创建用户,刷新权限是不必要的。。。但是谢谢你的建议