MySQL proxy

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая JackieBot (обсуждение | вклад) в 09:00, 22 ноября 2011 (Робот: Добавление категории [[:Category:%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%9E,_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D1%83%D0%B5%D0%BC%D0%BE%D0%B5_%D1%81_%D0%BF%D0%BE%D0%...). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

MySQL proxy — прокси-сервер, предназначенный для работы с базами данных MySQL.

Общее

MySQL proxy работает между сервером MySQL и клиентом, перенаправляя запросы от клиента к серверу. Имеет широкий набор возможностей (помимо непосредственно проксирования) за счет наличия встроенного языка Lua:

  • реализация механизма failover;
  • балансировка нагрузки;
  • перехват, фильтрация, модификация запросов;
  • обработка результатов выполнения запроса.

Опции

--proxy-backend-addresses — список бэкенд-серверов для балансировки запросов.

--proxy-read-only-backend-addresses — список readonly бэкендов-серверов.

--proxy-lua-script — скрипт Lua.

--daemon — запустить daemon-процесс (с версии 0.7 запускается по умолчанию).

Пример

mysql-proxy \
  --proxy-backend-addresses=localhost:3306 \
  --proxy-backend-addresses=localhost:3307 \
  --proxy-read-only-backend-addresses=remotehost:3306 \
  --proxy-read-only-backend-addresses=remotehost:3307 \
  --proxy-lua-script=/usr/share/mysql-proxy/rw-splitting.lua \
  --daemon

Интерфейсная часть на Lua

  • connect_server — вызывается при инициализации соединений с серверами, указанными в параметрах --proxy-backend-addresses и --proxy-read-only-backend-addresses
  • read_auth_result — обработчик авторизации клиента (обычно успешно авторизованное соединение записывается в пул соединений прокси-сервера)
  • read_query — эта функция вызывается при получении запроса от клиента и перед отправкой его на серверную часть
  • read_query_result — вызывается при получении результата выполнения запроса от сервера
  • disconnect_client — вызывается при закрытии соединения с сервером

Ссылки