你好斯塔克沃弗。
我目前正在使用000webhost.com作为我的MySQL数据库/服务器提供者。使用PHP,他们的服务非常出色!
我制作了一堆包含MySQL用户名、密码、主机、DB、et的变量。如下所示:
$mysql_host = "mysql3.000webhost.com";
$mysql_database = "a1966938_AtMarke";
$mysql_user = "a1966938_admin";
$mysql_password = "**********";
$mysql_table = "MarketDatas";我使用"mysql_connect($mysql_host,$mysql_user,$mysql_password)“连接到服务器。再说一遍,这一切都是完美的。但是,当我试图通过。Client (C#)它不允许我连接,或者如果我声明相同的变量并试图使用相同的变量和过程从另一个IP连接到服务器,它不会让我连接吗?
我很困惑-我应该怎么做,所以它允许所有的I?
发布于 2012-09-18 12:07:49
它不允许与其他it连接的原因可能有两个:
GRANT PRIVILEGES ... TO user@IP已授予该IP,但没有其他;如果您在数据库上拥有授予权限,您可能能够补救(请记住刷新权限)。通常,您可以实现一个用PHP编写的瘦REST层(只是谷歌'MySQL REST PHP接口‘之类的),这样您就可以连接到网络主机,并通过来自它们的接口的查询(当然是开放的--否则网络托管就无法工作)。这就是HeidiSQL在一些设置上所做的,它们的代码可能在某处浮动。然后,您将不使用C# MySQL库,而是使用HTTP库来完成这项工作。更麻烦,但更可移植(也是因为并非所有地方都可以预期端口3306/tcp会对外开放:它是在家庭ADSL上,但许多分布式运营商和公司只允许一些it和其他十几个输出端口80、443、110、25,而3306不是其中之一;但这取决于您计划如何处理C#客户端)。
但是,如果您得到“无法解析端口”,这也可能是由客户端库引起的,您可能必须手动指定MySQL连接端口值;默认值是3306,并且(通常)可以在主机名中指定它,例如"myserver.host.com:3306“。
发布于 2012-09-18 12:06:27
为了安全起见,主机公司通常会锁定MySQL服务器,以便只响应网络上的网络主机的IP地址。
所以,我恐怕简单的回答是,你可能不能把它设置为允许所有的it。
https://stackoverflow.com/questions/12476627
复制相似问题