我有一个带有 MySQL
数据库的远程托管网站。
我正在尝试从一个小型 C#
程序访问该数据库。
我尝试过的:
- 在项目中引用MySQL DLL
- 使用 MySQL 连接字符串
- 禁用我的防火墙
- 将我的 IP 地址添加到站点 cPanel 中的
远程 MySQL 数据库
我得到了什么:
- 在 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 访问。
这是否基本上意味着我无法从远程位置连接到数据库是我的主机的错误?
最佳答案
查看 mysql 数据库中的用户。有几点需要检查:
使用共享主机上的 cPanel,如果您创建名为
blah
的用户,则 mysql 中用户的实际名称通常是unixusername_blah
。这是自动完成的,以防止共享同一 MySQL 服务器的不同 cPanel 帐户之间的 MySQL 用户名冲突。使用 MySQL,您可以定义允许用户从哪些主机进行连接。您定义的新用户是否允许从您的 IP 连接?
预计到达时间:
可能需要查看该用户帐户的权限并确保授予适当的权限。您可以通过在 phpMyAdmin 或控制台中运行以下命令来完成此操作:
SHOW GRANTS FOR 'something_root'@'localhost'
并将您在那里看到的补助金与您在这里获得的补助金进行比较:
SHOW GRANTS FOR 'something_root'@'%'
最后,根据您的托管环境,您可能无权创建新用户或扩展其权限以执行此操作。如果您有共享托管帐户,这种情况尤其可能发生。
关于C# 与 MySQL 连接器 - 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13936900/