带有MySQL连接器的C# - 访问被拒绝

时间:2012-12-18 16:04:19

标签: c# mysql visual-studio-2010 connection-string mysql-connector

我有一个带有MySQL数据库的远程托管网站。

我正在尝试从小型C#程序访问该数据库。

我尝试了什么

  • 在项目中引用MySQL DLL
  • 使用MySQL连接字符串
  • 禁用我的防火墙
  • 将我的IP地址添加到网站的cPanel
  • 中的Remote MySQL Databases

我得到了什么

  • 在Visual Studio控制台中拒绝访问用户blabla @ mycomputerip

令我难以理解的事情

  • 如何判断我的网站托管服务是否允许远程连接到数据库?
  • 我真的需要将PuTTy连接到服务器并调整配置吗?
  • ^如果是这样,我甚至可以访问吗?

后期编辑:

  • 有趣的。如果我做

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
    
    它把我扔了:

    #1045 - Access denied for user 'blabla'@'localhost' (using password: YES)
    

    常识应该告诉你我的用户名实际上不是'blabla'。

稍后编辑:

我没有CREATE USER的权限,也没有通过PuTTy左右的SSH访问权限。
这是否基本上意味着我无法从远程位置连接到数据库,这是我的主机故障?

4 个答案:

答案 0 :(得分:1)

查看mysql数据库中的用户。有几件事需要检查:

  1. 在共享主机上使用cPanel时,如果创建名为blah的用户,则mysql中用户的实际名称通常为unixusername_blah。这是自动完成的,以防止共享同一MySQL服务器的不同cPanel帐户之间的MySQL用户名冲突。

  2. 使用MySQL,您可以定义允许用户连接的主机。您定义的新用户是否允许从您的IP连接?

  3. ETA:

    可能希望查看该用户帐户的权限,并确保授予适当的权限。您可以通过在phpMyAdmin或控制台中运行以下命令来执行此操作:

    SHOW GRANTS FOR 'something_root'@'localhost'
    

    将你看到的补助金与你在这里获得的补助金进行比较:

    SHOW GRANTS FOR 'something_root'@'%'
    

    最后,根据您的托管环境,您可能无权创建新用户或扩展其权限,足以执行此操作。如果您有共享主机帐户,这将特别有可能。

答案 1 :(得分:1)

  

如何判断我的网站托管服务是否允许远程连接?

最好问你的whebhosting statder,有些允许远程连接,其他没有。 如果它们允许远程连接,则可能必须配置允许用户连接的主机,或者添加通配符%以允许来自任何主机的连接。

答案 2 :(得分:1)

检查您的托管服务是否允许从其网络外部连接到其数据库服务器。 默认情况下,像GoDaddy这样的托管公司不允许这样做。

此外,您需要通过首选的数据库管理工具创建数据库用户并为其分配权限。

答案 3 :(得分:0)