我有一个带有MySQL
数据库的远程托管网站。
我正在尝试从小型C#
程序访问该数据库。
我尝试了什么:
Remote MySQL Databases
我得到了什么:
令我难以理解的事情:
后期编辑:
有趣的。如果我做
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
它把我扔了:
#1045 - Access denied for user 'blabla'@'localhost' (using password: YES)
常识应该告诉你我的用户名实际上不是'blabla'。
稍后编辑:
我没有CREATE USER的权限,也没有通过PuTTy左右的SSH访问权限。
这是否基本上意味着我无法从远程位置连接到数据库,这是我的主机故障?
答案 0 :(得分:1)
查看mysql数据库中的用户。有几件事需要检查:
在共享主机上使用cPanel时,如果创建名为blah
的用户,则mysql中用户的实际名称通常为unixusername_blah
。这是自动完成的,以防止共享同一MySQL服务器的不同cPanel帐户之间的MySQL用户名冲突。
使用MySQL,您可以定义允许用户连接的主机。您定义的新用户是否允许从您的IP连接?
ETA:
可能希望查看该用户帐户的权限,并确保授予适当的权限。您可以通过在phpMyAdmin或控制台中运行以下命令来执行此操作:
SHOW GRANTS FOR 'something_root'@'localhost'
将你看到的补助金与你在这里获得的补助金进行比较:
SHOW GRANTS FOR 'something_root'@'%'
最后,根据您的托管环境,您可能无权创建新用户或扩展其权限,足以执行此操作。如果您有共享主机帐户,这将特别有可能。
答案 1 :(得分:1)
如何判断我的网站托管服务是否允许远程连接?
最好问你的whebhosting statder,有些允许远程连接,其他没有。 如果它们允许远程连接,则可能必须配置允许用户连接的主机,或者添加通配符%以允许来自任何主机的连接。
答案 2 :(得分:1)
检查您的托管服务是否允许从其网络外部连接到其数据库服务器。 默认情况下,像GoDaddy这样的托管公司不允许这样做。
此外,您需要通过首选的数据库管理工具创建数据库用户并为其分配权限。
答案 3 :(得分:0)
重置mysql用户密码,然后重试
http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html