-1

好的,所以我有一个客户端正试图将他的一半站点移动到另一台服务器...在这我仍然需要从两个数据库中提取数据。所以我有新站点,我需要在旧站点上执行 mysql db 查询,这样我就可以包含旧导航....但是当我这样做时

  <?php include("http://www.othersite.com/includes/db.php"); ?>
  <?php include("http://www.othersite.com/includes/nav.php"); ?>

我明白了

Warning: mysql_query(): Access denied for user 'www-data'@'localhost'
(using password: NO) in /vol/www/othersite.com/public_html/includes/nav.php
on line 223 Warning: 

我如何从新站点访问另一个数据库并且不允许它干扰新的数据库连接

4

4 回答 4

1

您可以使用:

$newLink = mysql_connect($host, $user, $password);
mysql_select_db($db, $newLink);

并且您应该将 $newLink 添加到您的查询中,这样它就不会使用“旧”数据库链接连接,例如:

mysql_query('SELECT * FROM USERS', $newLink);

希望能帮助到你

PS 如果你把代码放在db.phpnav.php中会更容易

于 2011-01-28T15:29:09.123 回答
0

您需要向我们展示用于连接到这些数据库的实际代码(密码为空白)。但即使没有它,我也可以告诉你远程服务器没有被调用localhost

看来您正在包含来自远程站点的这些文件。它不会以这种方式工作,因为代码仍在本地服务器上执行。

您还必须确保远程 MySQL 允许远程连接,并且创建了具有适当权限的 MySQL 用户帐户。

见:http ://dev.mysql.com/doc/refman/5.5/en/privilege-system.html

于 2011-01-28T15:26:23.477 回答
0

...在这我仍然需要从两个数据库中提取数据。

祝你好运!

我会这样做的方式:

  1. 将代码复制到服务器#2
  2. 调整它以从服务器 #1 获取数据
  3. 将DNS记录从服务器#1的IP更改为服务器#2的IP
  4. 等待 1 天
  5. 在服务器 #1 上进行 5 分钟的阻塞“服务器维护”
  6. rsync db 从服务器 #2 到 #1 / 调整服务器 #2 以从其自身获取数据
  7. 删除“服务器维护”
  8. 在 ebay 上出售服务器 #1 并喝得酩酊大醉

注意:当然,如果您正在谈论一些私人主机。有更成功但更复杂的机制可以在不使服务器脱机的情况下做同样的事情。

于 2011-01-28T15:27:30.453 回答
0

http://www.othersite.com/includes/db.php在浏览器中加载。您会注意到您看不到 PHP 代码:您获得的是 PHP 代码的输出。这意味着,将所有ìnclude构造更改为指向远程 HTTP 服务器只会破坏您的站点,因为您将无法再访问源代码。

现在,回答您的问题,如果您想连接到远程数据库,您必须找到您拥有数据库密码并更改数据的任何位置:localhost使用新服务器地址、www-data使用新用户等。但是,您可能需要配置远程 MySQL 服务器,以便它接受来自新服务器 IP 地址的外部连接。

于 2011-01-28T15:27:46.710 回答