MySQL Proxy · 2 min read · Feb 08, 2026
Установка MySQL Proxy на CentOS 5 (ФИНАЛ) x86_64
Установка MySQL Proxy на CentOS 5 (ФИНАЛ) x86_64
Этот учебник объясняет, как установить MySQL Proxy на систему CentOS 5 (x86_64). MySQL Proxy — это простая программа, которая находится между вашим клиентом и MySQL сервером(ами) и может контролировать, анализировать или преобразовывать их коммуникацию. Его гибкость позволяет использовать его в неограниченных целях; к распространенным относятся: балансировка нагрузки; переключение при сбоях; анализ запросов; фильтрация и модификация запросов; и многое другое.
На свежей минимальной установке CentOS 5 финал x86_64:
yum install gcc.x86_64 libevent.x86_64 libevent-devel.x86_64 readline.x86_64 readline-devel.x86_64 ncurses.x86_64 ncurses-devel.x86_64 glib2.x86_64 glib2-devel.x86_64cd /usr/local/src/wget http://www.lua.org/ftp/lua-5.1.3.tar.gz
tar zxvf lua-5.1.3.tar.gzcd lua-5.1.3
make linux
make installwget http://dev.mysql.com/get/Downloads/MySQL-Cluster-6.2/mysql-5.1.23-ndb-6.2.15-linux-x86_64-glibc23.tar.gz/\
from/http://www.mirrorservice.org/sites/ftp.mysql.com/tar xzvf mysql-5.1.23-ndb-6.2.15-linux-x86_64-glibc23.tar.gz
ln -s mysql-5.1.23-ndb-6.2.15-linux-x86_64-glibc23 mysql
PATH=$PATH:/usr/local/mysql/bin
export PATHОтредактируйте ваш .profile, чтобы сделать это постоянным:
# .bash_profile
# Получить псевдонимы и функции
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Специфическая для пользователя среда и программы запуска
PATH=$PATH:/usr/local/mysql/bin:$HOME/bin
export PATH
unset USERNAMEwget http://dev.mysql.com/get/Downloads/MySQL-Proxy/mysql-proxy-0.6.1.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/tar zxvf mysql-proxy-0.6.1.tar.gz
cd mysql-proxy-0.6.1./configure LDFLAGS="-lm -ldl" LUA_CFLAGS="-I/usr/local/include/" LUA_LIBS=/usr/local/lib/liblua.amake
make installДавайте создадим пример скрипта LUA, чтобы вы могли увидеть некоторые логи.
mkdir /var/log/mysql-proxy/
mkdir -p /usr/local/mysql/lua-scripts/vi /usr/local/mysql/lua-scripts/simple-log.lua(см.: http://www.oreillynet.com/pub/a/databases/2007/07/12/getting-started-with-mysql-proxy.html?page=3
Скрипт изменен для получения IP и использования proxy.connection.server.thread_id.)
local log_file = '/var/log/mysql-proxy/mysql.log'
local fh = io.open(log_file, "a+")
function read_query( packet )
if string.byte(packet) == proxy.COM_QUERY then
local query = string.sub(packet, 2)
fh:write( string.format("%s %6d -- %s :IP %s :USER: %s\n",
os.date('%Y-%m-%d %H:%M:%S'),
proxy.connection.server.thread_id,
query,
proxy.connection.client.address,
proxy.connection.client.username))
fh:flush()
end
endТеперь запустите ваш прокси, используя переменную –proxy-backend-addresses, чтобы указать прокси на ваши серверы.
/usr/local/sbin/mysql-proxy --proxy-lua-script=/usr/local/mysql/lua-scripts/simple-log.lua --proxy-backend-addresses=192.168.1.33:3306 --proxy-backend-addresses=192.168.1.34:3306 --daemon192.168.1.33 и 192.168.1.34 — это узлы MySQL, к которым будет подключаться прокси.
Разрешите подключения для прокси через ваш брандмауэр:
### РАЗРЕШЕНО ПОДКЛЮЧЕНИЕ К MYSQL PROXY
###
### ЛОКАЛЬНЫЕ АДМИНЫ
-A INPUT -s SRC-IP -d DST-IP -p tcp -m state --state NEW -m tcp --dport 4040 -j ACCEPTГде DST-IP — это мой прокси-сервер, а SRC-IP — это мой локальный компьютер (клиентская машина).
Теперь с вашего локального компьютера (не с сервера mysql-proxy) попробуйте подключиться к базам данных через прокси (пользователь с соответствующими правами должен существовать в БД).
mysql -u dba_admin -p -h PROXY-SERVER -P 4040Добро пожаловать в монитор MySQL. Команды заканчиваются ; или \g.
Ваш идентификатор подключения MySQL: 16 к версии сервера: 5.1.23-ndb-6.2.15
Введите 'help;' или '\h' для помощи. Введите '\c' для очистки буфера.mysql> show databases;+--------------------+
| База данных |
+--------------------+
| information_schema |
| Imap_Forms |
| mysql |
| test |
+--------------------+
4 строки в наборе (0.01 сек)mysql> quitПокаP.S. Прокси использует порт 4040 вместо 3306.
Проверьте интерфейс администратора mysql-proxy с сервера mysql-proxy:
mysql -u root -p -h 127.0.0.1 -P 4041Добро пожаловать в монитор MySQL. Команды заканчиваются ; или \g.
Ваш идентификатор подключения MySQL: 1
Версия сервера: 5.1.20-agent MySQL Enterprise Agent
Введите 'help;' или '\h' для помощи. Введите '\c' для очистки буфера.mysql> select * from proxy_connections;+------+--------+-------+------+
| id | type | state | db |
+------+--------+-------+------+
| 0 | server | 0 | |
| 1 | proxy | 0 | |
| 2 | server | 10 | |
+------+--------+-------+------+
3 строки в наборе (0.00 сек)mysql>quitпокаРабота выполнена! Теперь читайте дальше:
http://dev.mysql.com/tech-resources/articles/proxy-gettingstarted.html
http://forge.mysql.com/wiki/MySQL_Proxy
http://www.oreillynet.com/pub/a/databases/2007/07/12/getting-started-with-mysql-proxy.html?page=1
Get new posts in your inbox
No spam. Unsubscribe anytime.