Подключение к другому БД с одного сервера

Итак, у меня есть клиент, который пытается переместить половину своего сайта на другой сервер... в этом мне все еще нужно получить данные из обеих баз данных. Итак, у меня есть новый сайт, и мне нужно сделать запрос MySQL DB на старом сайте, чтобы я мог включить старый Nav.... но когда я делаю

  <?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 ответа

Ты можешь использовать:

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

и вы должны добавить $newLink к вашим запросам, чтобы он не использовал "старое" соединение с базой данных, например:

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

Надеюсь, поможет

PS Будет проще, если вы поместите код из db.php и nav.php

... в этом мне все еще нужно получить данные из обеих баз данных.

Удачи с этим!

Как бы я это сделал:

  1. Скопируйте код на сервер № 2
  2. Настройте его для получения данных с сервера # 1
  3. Изменить запись DNS с ip сервера № 1 на ip сервера № 2
  4. Подожди 1 день
  5. Дайте блокировку "обслуживание сервера" на 5 минут на сервере №1
  6. rsync db с сервера № 2 на № 1 / настроить сервер № 2 для получения данных от себя
  7. Удалить "обслуживание сервера"
  8. Продайте сервер № 1 на Ebay и попробуйте

ПРИМЕЧАНИЕ. Конечно, если вы говорите о каком-то частном хосте. Существуют гораздо более удачные, но сложные механизмы, позволяющие сделать то же самое, не переводя сервер в автономный режим.

Нагрузка http://www.othersite.com/includes/db.php в вашем браузере. Вы заметите, что не видите код PHP: вы получаете вывод кода PHP. Это значит, чем менять все ваши ìnclude конструкции, указывающие на удаленный HTTP-сервер, просто сломают ваш сайт, поскольку у вас больше не будет доступа к исходному коду.

Теперь, отвечая на ваш вопрос, если вы хотите подключиться к удаленной базе данных, вы должны найти, где у вас есть пароль БД, и изменить данные: localhost с новым адресом сервера, www-data с вашим новым пользователем и т. д. Однако вам, вероятно, необходимо настроить удаленный сервер MySQL, чтобы он принимал внешние подключения с IP-адреса вашего нового сервера.

Вам нужно будет показать нам фактический код, используемый для подключения к этим базам данных (с отключенными паролями). Но даже без этого я могу сказать, что удаленный сервер НЕ называется localhost,

Кажется, вы включаете эти файлы с удаленного сайта. Это не сработает, так как код все еще выполняется на локальном сервере.

Вы также должны убедиться, что удаленный MySQL разрешает удаленные подключения и что существует учетная запись пользователя MySQL с соответствующими привилегиями.

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

Другие вопросы по тегам