Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Перенаправление запросов, с помощью MySQL  (Прочитано 13097 раз)
0 Пользователей и 1 Гость смотрят эту тему.
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« : 07-08-2006 06:36 » 

Ситуация такая:
Есть 3 компа:
1 - сервер, на нем хранится нужная БД (MySQL) (находится в сети А);
3 - клиент, здесь пользователь генерирует запросы к базе (находится в сети Б);
2 - маршрутизатор (комп под управлением Unix), он должен перенаправлять запросы клиента к серверу (но не все подряд)

Можно ли такое сделать, и если да, то как.
Записан

С уважением, asker
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 07-08-2006 14:36 » 

А причём тут MySQL? MySQL работает по по протоколу TCP/IP, и этот протокол от MySQL никак не зависит. Тему надо перенести в раздел сети. Правильный вопрос: "Как настроить маршрутизатор?"
Цитата: asker
комп под управлением Unix
Очень я в этом сомневаюсь. Что именно: Linux, Solaris, HP-UX, какая-нибудь BSD - точнее говори, везде свои тонкости.

Цитата: asker
(но не все подряд)
Что это значит? Какие именно не должен? В общем случае (если клиент имеет прямой доступ к MySQL, а не через некий сервис, реализующий уровень скажем так "бизнес-логики"), это настраивается в правах доступа пользователей MySQL к объектам MySQL (например, таблицам). Маршрутизатор здесь к делу не относится. Маршрутизатор может лишь включать/выключать доступ для отдельных хостов из сети Б к серверу, но не фильтровать SQL-запросы в зависимости от их (запросов) содержания.

Маршрутизация сети работает на 3-м уровне "сетевом" (согласно OSI-модели), MySQL - на 7-м "прикладном". И эти уровни друг с другом не связаны - если есть связь на 3-м уровне (можно установить сетевое соединение с MySQL), можно настраивать 7-й (авторизацию, права пользователей на выполнение запросов), если нет связи на 3-м уровне, 7-й вообще не работает.
« Последнее редактирование: 07-08-2006 14:44 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 08-08-2006 05:00 » 

А причём тут MySQL? MySQL работает по по протоколу TCP/IP, и этот протокол от MySQL никак не зависит.
MySQL может быть и не причем, но установленное СУБД - MySQL.

Цитата: asker
комп под управлением Unix
Очень я в этом сомневаюсь. Что именно: Linux, Solaris, HP-UX, какая-нибудь BSD - точнее говори, везде свои тонкости.
Насколько, мне известно комп под управлением freeBSD.
Цитата: asker
(но не все подряд)
Что это значит? Какие именно не должен?
Запросы к "моей" БД маршрутизатор должен перенаправлять к серверу с "моей" БД, а все остальные на другой сервер (может быть я не совсем правильно выразился)

Да, что значит клиент имеет прямой доступ к MySQL.
Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP.
Записан

С уважением, asker
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 08-08-2006 05:11 » 

Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP.
Хм.. а как тогда осуществлять сепарацию запросов? Что и куда?
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 08-08-2006 05:27 » 

Цитата: asker
Запросы к "моей" БД маршрутизатор должен перенаправлять к серверу с "моей" БД, а все остальные на другой сервер (может быть я не совсем правильно выразился)

Да, что значит клиент имеет прямой доступ к MySQL.
Т.е. знает IP адрес сервера, на кот-ом БД, если да, то очень очень не хотелось бы чтобы клиент знал этот IP.
Если MySQL не имеет функции подзапросов к другим серверам и источникам данных (нечто, вроде linked servers в MS SQL Server), то такое штатными средствами сделать невозможно. В качестве решения можно создать некий сетевой сервис, который будет выступать в качестве дополнительного логического слоя приложения. Тогда все клиенты будут обращаться к сервису, исользуя предоставляемый им API, и не будут делать запросов к БД. Все запросы к БД будет делать этот сервис.

Но скорее всего речь идёт о неправильной конфигурации среды. Объясни суть задачи и обоснуй, почему клиентам нельзя сообщать IP MySQL именно с твоей  БД. Чем она такая секретная? Почему разнесены БД по разным серверам? Решения каких проблем ты этим хочешь добиться?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 08-08-2006 16:00 » 

dimka, поправочка: версия 5.1 (девелоперская ветка на стадии beta) имеет в комплекте специальный тип таблиц - "FEDERATED", который является интерфейсом к таблице на другом сервере.
http://www.mysql.org/doc/refman/5.1/en/federated-description.html
http://www.mysql.org/doc/refman/5.1/en/federated-storage-engine.html
« Последнее редактирование: 08-08-2006 16:02 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 08-08-2006 16:47 » 

Тогда в перспективе (когда версия станет стабильной) возможно поставить прокси-MySQL - он сам определит, к каким БД (или таблицам) обращаются, и перенаправит запросы куда нужно. Но права, опять же, настраиваются в MySQL, а не на уровне маршрутизатора сети.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 08-08-2006 18:18 » 

asker, ты можешь выразить смой вопрос точно? Чтобы не гадали, в чем же он заключается...
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 09-08-2006 03:49 » 

Ситуация такая:
Есть технологическая машина, на которой должна быть БД по управлением СУБД MySQL.
Эта технол. машина и есть сервер, кот-ый находится в сети A, он не имеет прямого выхода в интернет, данная сеть находится за двумя маршрутизаторами а то и больше...

Данной сети А свыше выделен один ИП из сети Б, сети Б в свою очередь так же выделен ИП с прямым выходом в инет(DSL-модем), в сетях А и Б поднят NAT,
в сети Б на сервере который имеет два интерфейса поднят HTTP-сервер на котором должен крутиться сайт, который будет формировать запросы к базе данных, которая находится на компе из сети А, за маршрутизатором(FreeBSD 4.11).
Записан

С уважением, asker
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 09-08-2006 04:38 » 

asker, дак тебе что нужно? Чтобы технологическая машина была защищена от доступа из интернета? Для этого сетевого маршрутизатора достаточно - ведь сеть Б - локальная сеть. Движок сайта (как единственный пользователь) через логин-пароль будет иметь доступ к MySQL, и всё - случайные пользователи из твоей сети Б доступа к MySQL на тех.машине иметь не будут, а из интернета никого в локальную сеть маршрутизатор на выходе в интернет не допустит.
« Последнее редактирование: 09-08-2006 04:40 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
asker
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 14-08-2006 07:57 » 

Извините за отсутствие, ко мне родственики приехали, выдалась минутка.
Я обдумаю то, что ты сказал. Может ты и прав, и мы выдумали проблему там где ее нет...
Попробую...
Спасибо, dimka
Записан

С уважением, asker
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines