MySQL 설치 · 2 min read · Feb 08, 2026

CentOS 5 (FINAL) x86_64에 MySQL Proxy 설치하기

CentOS 5 (FINAL) x86_64에 MySQL Proxy 설치하기

이 튜토리얼은 CentOS 5 (x86_64) 시스템에 MySQL Proxy를 설치하는 방법을 설명합니다. 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_64
cd /usr/local/src/
wget http://www.lua.org/ftp/lua-5.1.3.tar.gz  
tar zxvf lua-5.1.3.tar.gz
cd lua-5.1.3  
make linux  
make install
wget 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 USERNAME
wget 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.a
make  
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 --daemon

192.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는 내 로컬 박스(클라이언트 머신)입니다.

이제 로컬 박스(프록시 서버가 아님)에서 프록시를 통해 백엔드 데이터베이스에 연결해 보세요(관련 권한이 있는 사용자가 DB에 존재해야 합니다).

mysql -u dba_admin -p -h PROXY-SERVER -P 4040
MySQL 모니터에 오신 것을 환영합니다.  명령은 ; 또는 \g로 끝납니다.  
당신의 MySQL 연결 ID는 16이며 서버 버전은: 5.1.23-ndb-6.2.15입니다.  

'help;' 또는 '\h'를 입력하여 도움을 요청하세요. '\c'를 입력하여 버퍼를 지우세요.
mysql> show databases;
+--------------------+  
| Database           |  
+--------------------+  
| information_schema |  
| Imap_Forms         |  
| mysql              |  
| test               |  
+--------------------+  
4 rows in set (0.01 sec)
mysql> quit
안녕히 가세요

참고: 프록시는 3306 대신 4040 포트를 사용합니다.

mysql-proxy 서버에서 mysql-proxy 관리 인터페이스를 테스트하세요:

mysql -u root -p -h 127.0.0.1 -P 4041
MySQL 모니터에 오신 것을 환영합니다.  명령은 ; 또는 \g로 끝납니다.  
당신의 MySQL 연결 ID는 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 rows in set (0.00 sec)
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

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.