Подключение к другому БД с одного сервера
Итак, у меня есть клиент, который пытается переместить половину своего сайта на другой сервер... в этом мне все еще нужно получить данные из обеих баз данных. Итак, у меня есть новый сайт, и мне нужно сделать запрос 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
... в этом мне все еще нужно получить данные из обеих баз данных.
Удачи с этим!
Как бы я это сделал:
- Скопируйте код на сервер № 2
- Настройте его для получения данных с сервера # 1
- Изменить запись DNS с ip сервера № 1 на ip сервера № 2
- Подожди 1 день
- Дайте блокировку "обслуживание сервера" на 5 минут на сервере №1
- rsync db с сервера № 2 на № 1 / настроить сервер № 2 для получения данных от себя
- Удалить "обслуживание сервера"
- Продайте сервер № 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