0

我在与我的 MySQL 数据库不同的 webspace 上运行 ac# web 服务。我想将它们链接在一起,所以有以下 c# 代码。

            server = "www.***.com";
        database = "MyDataBase";
        uid = "admin";
        password = "Password";
        string connectionString;
        connectionString = "SERVER=" + server + ";" + "DATABASE=" +
        database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";

        connection = new MySqlConnection(connectionString);
        try
        {
            connection.Open();
        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        {
            Console.WriteLine(ex.Message);
        }

在捕获异常时,我收到以下错误

“用户'admin'@'cpc13-ches4-2-0-cust195.9-1.cable.virginmedia.com'的访问被拒绝(使用密码:是)”

我目前只在本地运行它,所以我不知道这是帮助还是阻碍。

4

5 回答 5

2

检查您的 MySQL 用户设置,以确保admin允许该帐户从localhost.

您可以验证允许用户从哪些主机连接,如下所示:

select user, host from mysql.user

如果admin用户只能从 localhost 进行连接,那么您需要为要连接的新主机或使用%.

您可以admin像这样查看 localhost 上的权限:

show grants for 'admin'@'localhost'

然后,您可以复制/粘贴那些更改主机部分的授权,以在另一台主机上授予相同的权限。

于 2012-07-20T15:08:55.457 回答
0

确保您的 MySql 服务器允许远程连接。也许您的连接字符串不是确切的。在此处检查连接字符串:http ://connectionstrings.com/mysql

于 2012-07-20T15:09:50.400 回答
0

你会想去:

Security > Logins > Click your account > Properties > User Mappings

并确保您拥有正确的权限

于 2012-07-20T15:10:12.897 回答
0
  • 在http://dev.mysql.com/downloads/connector/odbc/3.51.html下载并安装“MySQL ODBC 3.51 驱动程序” 。
  • 使用 IP 地址而不是 www。* .com
  • 需要在服务器上打开端口 3306

            string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" +
                                  "SERVER=112.***.**.***;" +
                                  "DATABASE=dbname;" +
                                  "UID=u_name;" +
                                  "PASSWORD=u_pass;port=3306;" +
                                  "OPTION=3";
            OdbcConnection MyConnection = new OdbcConnection(MyConString);
            MyConnection.Open();
    
于 2013-04-15T14:36:51.290 回答
0

You have to grant access for admin @ cpc.......

Login to mysql and do the following:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'
->     WITH GRANT OPTION;

Or first check with this command to see the priv first.

SHOW GRANTS FOR 'admin'@'localhost';

And try again...

于 2012-07-20T15:09:40.930 回答