MySQL proxy

MySQL proxy
Тип Прокси-сервер
Разработчик Oracle
Написана на Си
Операционные системы Unix/Linux, FreeBSD, OS X, AIX, Solaris, Windows
Последняя версия 0.8.5 (05.09.2014)
Лицензия GPLv2
Сайт github.com/mysql/mysql-p…

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

Общее

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

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

Опции

--proxy-address - IP и порт самого mysql proxy (подключаться из приложений к нему).

--proxy-backend-addresses — список бэкенд-серверов для балансировки запросов (master в кластерной архитектуре).

--proxy-read-only-backend-addresses — список readonly бэкендов-серверов (slave, только read запросы).

--proxy-lua-script — скрипт Lua (rw-splitting.lua который разделяет read/write, уже есть в исходниках - нужно скачать архив с гитхаба и найти).

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

Пример

mysql-proxy \
  --proxy-address=:3305
  --proxy-backend-addresses=remotehost1:3306 \
  --proxy-read-only-backend-addresses=remotehost2:3306 \
  --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 — вызывается при закрытии соединения с сервером

Ссылки

  • [1] Документация  (англ.)
  • Список объектов Lua в контексте MySQL Proxy  (англ.)
  • Mysql-proxy failover
  • Несколько слов о MySQL proxy
  • Mysql-Proxy: Установка и настройка на CentOS7
Перейти к шаблону «MySQL»
MySQL
Версии
  • MySQL
  • MySQL Enterprise
  • MySQL Cluster
Инструменты
  • MySQL Workbench
  • phpMyAdmin
  • MySQL proxy
  • HeidiSQL
  • Navicat
Движки
  • MyISAM
  • Falcon
  • InnoDB
  • XtraDB
  • MySQL Federated
  • MySQL Archive
  • Maria
  • Aria
Форки
  • Drizzle
  • MariaDB
  • Percona Server