Удаленное подключение к БД

Exillon

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

A1x

Новичок
почему не просто разрешить удаленное подключение с определенного айпи?
 

Exillon

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

A1x

Новичок
интересно, скрипт туннеля на сервере донора поставить можно а разрешить подключение нельзя.
поставьте phpmyadmin
 

Exillon

Новичок
причем здесь одно к другому? доступ ftp и mysql есть, скрипт сам заходит по фтп, и может создать скрипт тунеля. А вот другое дело что многие хостинги запрещают извне конектиться к БД.
 

A1x

Новичок
отвык от виртуальных хостингов :) и все же phpmyadmin?
 

Exillon

Новичок
ну так а причем здесь пхпмайадмин? он может пользователей создавать и привилегии им назначать.
А если конект к БД запрещен mysql конфигом или фаерволом на сервере, то пхпмайадмин не поможет ничем.
 

Exillon

Новичок
это не поможет я же пишу. или пхпмайдамин научился править конфиги и вообще рут от сервера получать? это совсем не универсальный метод...
 

silent9

Новичок
tunnel.php?sql_query=DROP DATABASE

PHP:
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query($_GET['sql_query']);

{ ... }
 

slach

Новичок
посмтрите proxy php скрипты от EMS SQL Manager, SQL Maesto и SQLyog

ssh доступ у вас к "донорам" есть? ограничение на коннект через ssh тунели и port forwarding обходится...
 

Exillon

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

slach

Новичок
я правильно понимаю... ну типа для тех у кого на хостинге НЕТУ бд, но им надо... вы хотите предоставить доноров которые будут давать БД на shared хостингах??? =)
 

Exillon

Новичок
tunnel.php?sql_query=DROP DATABASE

PHP:
mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb");
$result = mysql_query($_GET['sql_query']);

{ ... }
Ну это все понятно, я это и предлагал, вопрос в том как отдавать mysql ресурс этим скриптом, и лучше конечно данные ПОСТом передавать.
 

silent9

Новичок
через ssh как-то можно было сделать туннель, и то вроде если хостер поддерживет, я лет 7-8 назад такое делал, а через фтп уже никак
 

Exillon

Новичок
я правильно понимаю... ну типа для тех у кого на хостинге НЕТУ бд, но им надо... вы хотите предоставить доноров которые будут давать БД на shared хостингах??? =)
неа )) до такого не додумались.
Это будет сервис, клиент нам сообщает фтп и БД, наш сервер заходит туда сам и создают нужные файлы вместе с структурой БД, типа как удаленное управление файлами и базой.
 

silent9

Новичок
При помощи SSH клиента Putty это делается так:

Создаем новое соединение.
В поле Host Name (or IP address) указываем ip адрес сервера, либо имя хоста
Port: 22
Далее в категории Connection/SSH/Tunnels
в секции Add new forwarded port указать Source port: локальный_порт (например, 7777),
Destination: localhost:3306,
выбрать пункт Local и нажать кнопку добавить
Теперь соединяемся по SSH и вводим как обычно логин и пароль.
Теперь когда вы на вашей (клиентской) машине обращаетесь к порту 127.0.0.1:7777, ваши запросы будут переадресовываться порту 3306 на localhost сервера.

Сейчас можете открыть Ваш любимый менеджер баз данных (я использую HeidiSQL) и создать новое соединение
Host: 127.0.0.1
User: Имя пользователя MySql
Password: Пароль пользователя MySql
Port: 7777 (тот же, который указали в поле Source port: при настройке Putty)

Все, теперь вы можете работать с базой удаленно!
 

Exillon

Новичок
К сожалению как говорил в большинстве случаев это будут обычные виртуальные хостинги, и в нашем распоряжении только фтп и бд доступ. =(
 

slach

Новичок
ну и??? тогда еще раз
смотрите конкурентов SQL Manager, SQL Maestro, SQL log, там везде есть ф-ция HTTP Tunnel
 
Сверху