2

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

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

我试过的

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

我得到了什么

  • 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”。

稍后编辑:

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

4

4 回答 4

1

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

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

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

预计到达时间:

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

SHOW GRANTS FOR 'something_root'@'localhost'

并将您在此处看到的赠款与您在此处获得的赠款进行比较:

SHOW GRANTS FOR 'something_root'@'%'

最后,根据您的托管环境,您可能无权创建新用户或扩展他们的权限足以做到这一点。如果您有一个共享主机帐户,这种情况尤其可能发生。

于 2012-12-18T16:08:25.107 回答
1

如何确定我的虚拟主机服务是否允许远程连接?

最好问问你的whebhosting证明者,有些允许远程连接,有些不允许。如果它们允许远程连接,您可能必须配置允许用户从哪些主机连接,或者添加通配符 % 以允许来自任何主机的连接。

于 2012-12-18T16:11:02.413 回答
1

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

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

于 2012-12-18T16:13:46.103 回答
0

重置mysql用户密码,然后重试

http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html

于 2012-12-18T16:24:56.203 回答