подключение к другому БД с одного сервера - PullRequest
0 голосов
/ 28 января 2011

Хорошо, у меня есть клиент, который пытается переместить половину своего сайта на другой сервер ... в этом мне все еще нужно получить данные из обеих баз данных. Итак, у меня есть новый сайт, и мне нужно сделать запрос 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 ]

1 голос
/ 28 января 2011

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

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

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

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

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

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

0 голосов
/ 28 января 2011

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

Удачи с этим!

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

  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 и получите пьян

Примечание: Конечно, если вы говорите о каком-то частном хосте. Существуют гораздо более удачные, но сложные механизмы, позволяющие сделать то же самое без отключения сервера.

0 голосов
/ 28 января 2011

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

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

0 голосов
/ 28 января 2011

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

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

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

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

...