2

我有一个远程托管网站与MySQL数据库。C#与MySQL连接器 - 访问被拒绝

我试图从一个小的C#程序访问该数据库。

我已经试过

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

什么我得到

  • 访问在Visual Studio控制台

拒绝用户布拉布拉@ mycomputerip什么博格尔斯我的脑海

  • 我怎样才能找出我的虚拟主机服务是否允许远程连接到数据库?
  • 我真的需要连接PuTTy到服务器并调整配置吗?
  • ^如果是的话,我甚至可以访问吗?

以后编辑:

  • 足够有趣。如果我做

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; 
    

    它抛出我:

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

    常识应该告诉你,我的用户名是不实际“布拉布拉”。

后来的后来编辑:

我没有权限创建用户,也没有得到通过腻子左右SSH访问。
这是否意味着这是我的主机的错误,我无法从远程位置连接到数据库?

+0

你在VPS或共享主机上运行?如果在共享主机上,MySQL服务器可能也是共享的,所以你无法为所有事情授予特权,因为你自己无法访问所有内容。 –

回答

1

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

  1. 随着的cPanel的共享主机,如果你创建了一个名为blah用户在MySQL用户的实际名称是经常unixusername_blah。这是自动完成的,以防止共享相同MySQL服务器的不同cPanel帐户之间的MySQL用户名冲突。

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

ETA:

可能要看看该用户帐户的权限,并确保适当的权限授予。您可以通过运行在phpMyAdmin或在控制台下做到这一点:

SHOW GRANTS FOR 'something_root'@'localhost' 

你可以看到那里的补助比较你会得到什么位置:

SHOW GRANTS FOR 'something_root'@'%' 

最后,根据您的托管环境中,您可能没有权限创建新用户或扩展其权限,以便能够执行此操作。如果您拥有共享的托管帐户,则这种情况特别有可能。

+0

数据库的用户名是**被截尾的** __根,这是我刚才创建的。我使用这个用法连接到我的PHP应用程序中的数据库,该数据库上传到网站上。我已经添加了'%'通配符,现在它只是说'访问被拒绝**被审查** _ root @%'。 – GGrec

+0

@GGeorge - 更新了我的答案。可能现在存在具有'%'通配符的用户,但它没有正确的授权。 –

+0

显示'something_root'的赠款会导致我拒绝访问。但是,显示'某物'的奖金实际上会给我一个结果。我真的很困惑,因为这表明我用'something'登录而不是'something_root'。 – GGrec

1

如何查看我的webhosting服务是否允许远程连接?

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

1

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

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