MySQL proxy

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Malikbakt (обсуждение | вклад) в 13:34, 21 декабря 2009 (Пример). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

Общее

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

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

Основные опции

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

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

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

Пример

mysql-proxy --proxy-backend-addresses=localhost:3306 --proxy-backend-addresses=localhost:3307 --proxy-read-only-backend-addresses=192.168.0.17:3306 --proxy-readonly-backend-addresses=192.168.0.17: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 - вызывается при закрытии соединения с сервером

Ссылки