Удаленный доступ к MySQL

KoSik

Новичок
Удаленный доступ к MySQL

Собственно вопрос вот в чем:

Скрипт находится на одном хостинге. База данных MySQL - на другом. В скрипте прописал все настройки подключения (хост,базу,юзернейм,пароль). Однако подключеня не происходит.

Может нужно указывать порт? Если да, то какой?

Возможно предоставителем хостинга ставится защита от удаленных подключений? Возможно ли такое?

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

Спасибо...
 

Кром

Новичок
>Возможно предоставителем хостинга ставится защита от удаленных подключений? Возможно ли такое?

mysql по умолчанию закрыта от удаленных соединений. Так что решай этот вопрос с хостерами базы.
 

KoSik

Новичок
Автор оригинала: Кром
>Возможно предоставителем хостинга ставится защита от удаленных подключений? Возможно ли такое?

mysql по умолчанию закрыта от удаленных соединений. Так что решай этот вопрос с хостерами базы.
т.е. это единственная причина того, что я не могу подключиться?
 

Кром

Новичок
>т.е. это единственная причина того, что я не могу подключиться?

Причин может быть сколько угодно. Ты пока с этой причиной разберись.
 

KoSik

Новичок
Автор оригинала: Кром
>т.е. это единственная причина того, что я не могу подключиться?

Причин может быть сколько угодно. Ты пока с этой причиной разберись.
Ок, благодарю...
 

Wicked

Новичок
KoSik

"подключения не происходит" - а в чем это выражается? может стоит посмотреть в сторону [m]mysql_error[/m]() / [m]mysqli_connect_error[/m]()

PS: тебя случаем не Надя зовут? :)
 

Denissimo

Новичок
Re: Удаленный доступ к MySQL

Не совсем понял, что именно нужно, но мож мой способ поможет...
Если пишешь на PHP, попробуй на сайте с базой сделать страницу (например mysql_connect.php) для подключения к БД, только переменные с логином и паролем оставить пустыми (не приравнивать их вообще ни к чему).
А на удалённом сделай страницу с кодом:
PHP:
<? 
$login="vasya"; 
$password="pupkin"; 
include ("http://www.твой_сайт_с_БД.ru/mysql_connect.ru"); 
?>
 

KoSik

Новичок
Хостер настойчиво дал понять, что открывать удаленный доступ к MySQL не собирается... какие варианты? (



-~{}~ 25.07.06 13:49:

Автор оригинала: Denissimo
Не совсем понял, что именно нужно, но мож мой способ поможет...
Если пишешь на PHP, попробуй на сайте с базой сделать страницу (например mysql_connect.php) для подключения к БД, только переменные с логином и паролем оставить пустыми (не приравнивать их вообще ни к чему).
А на удалённом сделай страницу с кодом:
PHP:
<? 
$login="vasya"; 
$password="pupkin"; 
include ("http://www.твой_сайт_с_БД.ru/mysql_connect.ru"); 
?>
Данный способ не подходит, т.к. подключиться то оно подклЮчится, вот только действия с базой можно будет выполнять все равно только из скрипта, который находится на сервере. Из удаленного скрипта все равно не будет возможности делать ни селекты, ни инсерты, ни апдейты, и т.д.
 

Wicked

Новичок
KoSik
можно забахать php proxy, типа того, который используется в EMS MySQL Manager'е. Вкратце: твой скрипт с хостинга А будет коннектиться к пхп-скрипту на хостинге Б, а тот, в свою очередь, к базе данных хостинга Б. Только это, мягко говоря, сделать сложно, и гораздо дешевле окажется поменять хостинг.
 

KoSik

Новичок
Автор оригинала: Wicked
KoSik
можно забахать php proxy, типа того, который используется в EMS MySQL Manager'е. Вкратце: твой скрипт с хостинга А будет коннектиться к пхп-скрипту на хостинге Б, а тот, в свою очередь, к базе данных хостинга Б. Только это, мягко говоря, сделать сложно, и гораздо дешевле окажется поменять хостинг.
.

Повторяю, такой вариант в моем случае не подходит, т.к. мне мало просто подконнектиться к базе. Мне еще нужно производить много действий из скрипта, расположенного на удаленном от MySQL хостинге. Пробовал способ, к базе подключался, все команды, которые были прописаны в скрипте, который вызывался основной программой - выполнялись, однко действия, которые производились в САМОЙ программе, уже не выполнялись.
Вся эта система мне нужна для того, чтобы с помощью CMS, которая находится у меня на отдельном хостинге я мог управлять всеми моими проектами.
 

Wicked

Новичок
Ты меня не понял. Скрипт А будет САМ посылать скрипту Б запросы, и забирать результаты. Сам скрипт Б не будет содержать никаких запросов, а только уметь выполнять запросы, пришедшие от скрипта А.
 

Apache_xp

Новичок
Повторяю, такой вариант в моем случае не подходит, т.к. мне мало просто подконнектиться к базе. Мне еще нужно производить много действий из скрипта, расположенного на удаленном от MySQL хостинге. Пробовал способ, к базе подключался, все команды, которые были прописаны в скрипте, который вызывался основной программой - выполнялись, однко действия, которые производились в САМОЙ программе, уже не выполнялись.
Вся эта система мне нужна для того, чтобы с помощью CMS, которая находится у меня на отдельном хостинге я мог управлять всеми моими проектами
Т.е. всетаки коннект есть? ты уж определись.
И еще раз ВНИМАТЕЛЬН перечитай последния пост Wicked
 

KoSik

Новичок
Автор оригинала: Wicked
Ты меня не понял. Скрипт А будет САМ посылать скрипту Б запросы, и забирать результаты. Сам скрипт Б не будет содержать никаких запросов, а только уметь выполнять запросы, пришедшие от скрипта А.
Да, возможно я тебя не понял. Если в скрипт Б будет только обрабатывать запросы, обращаться к базе, забираться результат и передавать в скрипт А, то может быть что-то и получится, только вот какова будет скорость работы такого скрипта, ведь запросов очень много, и если каждый раз они будут обрабатываться таким способом..... в общем, надо пробовать.. Больше никаких вариантов в голову не приходит ни у кого?

-~{}~ 25.07.06 15:33:

Автор оригинала: Apache_xp
Т.е. всетаки коннект есть? ты уж определись.
Коннект есть, но только для скрипта, который находится на сервере с базой. Даже учитывая то, что он подключен к основному скрипту include-ом, это не дает возможности выполняться командам из основного скрипта.
 

Wicked

Новичок
только вот какова будет скорость работы такого скрипта, ведь запросов очень много, и если каждый раз они будут обрабатываться таким способом.....
ну тормоза из-за пхп будут скорее всего сопоставимы с тормозами из-за интернета.

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

Даже учитывая то, что он подключен к основному скрипту include-ом, это не дает возможности выполняться командам из основного скрипта.
Именно так. Не нужно слушать всех подряд.
 

KoSik

Новичок
В общем, создал на сервере скрипт, в котором содержится функция remote_mysql_query(); Эта функция выполняет запрос, который передается ей из основной программы. Как только не пробовал подключать скрипт с этой функцией, и через require, и через include, вот только не хочет основной скрипт вызывать эту функцию.

Даже если в удаленном скрипте находится функция

function remote_mysql_query() {
echo "Test!";
}

а в основной программе:

require_once "http://удаленный_хост/remote_mysql.php";
remote_mysql_query();

то ничего не происходит. Удаленная функция просто напросто не вызывается :(
 

BRat

o_0
require подключит не код скрипта, а то что скрипт выдает на выходе, то есть пустую строку. Тебе нужно работать с удаленным скриптом, через $_POST или $_GET массивы, то есть
http://удаленный_хост/remote_mysql.php?function=mysql_query
в самом скрипте уже проверяешь $_GET или $_POST, и в зависимости от него вызываешь что нужно
Предлагаю тебе изучить функцию [m]fsockopen[/m]
 

KoSik

Новичок
http://удаленный_хост/remote_mysql.php&function=mysql_query
Вот этого я не понял совсем....

Если уже и передавать через GET/POST, то передавать надо сам запрос, а при чем тут имя функции?

Если можешь, приведи пример кодов 2-х скриптов(локального и удаленного), чтобы локальный скрипт передавал на удаленный неки параметр, а удаленный просто выводил его в echo.
 

BRat

o_0
Если уже и передавать через GET/POST, то передавать надо сам запрос, а при чем тут имя функции?
- правильно мыслишь, я только привел пример.

Если можешь, приведи пример кодов 2-х скриптов(локального и удаленного), чтобы локальный скрипт передавал на удаленный некий параметр, а удаленный просто выводил его в echo.

а что тебе в этой модели непонятно? не можешь вывести массив $_GET?
еще раз предлагаю ознакомиться с [m]fsockopen[/m], и с комментариями к ней
 

KoSik

Новичок
Да нет, как подключиться к удаленному хосту с помощью сокета, и как передать туда запрос с помощью HTTP заголовка я знаю.

Так вот, удаленная программа получает мой запрос через $POST, далее выполняется запрос к базе (что-то типа $result=mysql_query($_POST['remote_query'])... меня интересует, как этот $result вернуть обратно в исходную программу, чтобы я мог начать производить над ним действия...?
 
Сверху