0

我创建了一个搜索引擎zoken.co.cc,并选择手动提交站点并下载文件 populate.php 通过在其他 ftp 中上传 populate.php 并在数据库中打开它本身的索引。

例如:一个站点www.abc.com想在我的搜索引擎中提交站点并选择自动提交和下载文件(populate.php)并在 ftp 服务器中上传。并打开页面www.abc.com/populate.php。然后出现一个页面并且有

Warning: mysql_connect() [function.mysql-connect]: Host '10.1.1.27' is not allowed to connect to this MySQL server in /home/a1091216/public_html/populate.php on line 10

ERROR: Could not connect to database    

我知道他和我的 FTP 服务器不同,但可以保存。

4

2 回答 2

1

这是因为不允许远程服务器使用该用户名连接到您的数据库服务器。您可以将数据库用户设置为允许来自 的连接%,这意味着“使用此用户名登录的用户可以从任何主机连接到数据库服务器”。

在别人的服务器上运行 PHP 脚本真的很重要吗?我可以看到以下问题:

  • 用户不信任您的 PHP 脚本并最终不提交。

  • 用户没有在服务器上安装 PHP,或者正在运行服务器来为使用 ASP 构建的站点提供服务,从而导致 PHP 脚本无用。

  • PHP 文件将包含数据库用户名和密码。谁说网站管理员不会从 PHP 文件中获取这些内容并弄乱您的数据库(即使用户帐户只允许从 1 个表中读取/写入)?

如果我是你,我会让他们下载一个带有随机字符串的文本文件。要求他们将其上传到他们提交的站点的根目录。然后每 5 分钟(直到站点被标记为已验证),让您的服务器退出并使用 CURL 从他们的站点检索文本文件。检查里面的随机字符串,然后填充您的数据库。

于 2012-07-06T06:27:03.863 回答
0

是的,如果请求该连接的脚本来自另一台服务器,则可以连接到放置在一台服务器上的 mysql 数据库。
第一件事是确保主机 mysql 服务器已打开网络并在防火墙上打开端口 3306(我认为这是数字)。我希望这两个默认情况下都是关闭的。
就个人而言,我会非常怀疑这样做。让 mysql 上网让我很不舒服。建议您尝试并找到更好的方法来做到这一点。

只是重新阅读并意识到我应该更清楚。在 my.cnf(mysql 配置文件,可能在 /etc 中)有一个变量,类似于networking=no 或skip-networking;我忘记了细节。无论如何,需要将其设置为启用网络,然后您需要重新启动 mysqld。

于 2012-07-06T06:31:57.767 回答