728x90

https://proxysql.com/

MySQL은 Open소스에서는 가장 많이 쓰는 DB이다.

그리고 오라클의 창렬가격 떄문에 공짜인 MySQL을 어떻게 하면 잘 쓸 수 있을까는 꾸준히 연구가 진행되었다.

그래서 그 전용 솔루션이 나왔는데 이는 바로 ProxySQL이다.


해당 홈페이지에서 설명하는 장점은 위와 같다.

하지만 필자가 생각할 때 가장 중요한건 Replication관리와 Query Routing이다.



"선생님! 전 설명보다 설치를 빨리 해보고싶어요!"


그럼 바로 설치를 해보도록 하자.


설치 환경은 ubuntu로 할 것인데 추후에 CentOS도 하는 법을 올리도록 하겠다.


[Docker]Ubuntu-Sshd : 우분투 컨테이너 실행하고 원격접속하기(ssh)


일단 테스트는 여러컴퓨터에서 할 수 밖에 없는데 그게 재현하는게 힘들(거나 돈이 들)기 때문에 vm이나 docker를 쓰는걸 추천한다.

여기서는 docker를 사용해서 만들것이다. 

위의 이미지를 사용해서 만들 것인데 여러분도 docker를 사용하기를 추천한다.


물론 도커나 vm을 사용하지 않아도 된다.

아래 예제는 도커나 vm과 상관없이 그냥 똑같이 따라하면 되므로 문제될건 없다.


https://github.com/kukaro/Eris-DockerExampleTemplate/tree/master/Ubuntu-Sshd-ProxySQL

예제 프로젝트는 위의 프로젝트를 사용하였다.


EXPOSE 22 6032

단 도커 이미지에서 6032를 열어줘야 외부에서 사용할 수 있다.


ports:
- '11111:22'
- '16032:6032'
expose:
- '11111'
- '16032'

docker-compose에서도 포트들을 연결해줘야한다.

그래야 외부에서 접근이 가능하다.


그리고 여기서 부턴 도커를 사용하건 vm을 사용하건 한 PC에서 하던 동일하다.

다만 현재 환경은 Ubuntu이다.



apt-get update && apt-get install -y vim


먼저 vim을 설치하자. 사실 무조건 필요하진 않지만 있는게 도움이 되기 때문이다.



apt-get install -y wget mysql-client inotify-tools procps


wget과 mysql-client, inotify-tools procps를 다운로드하자.

필자는 docker라서 wget이 깔려 있지 않은데 깔려있다면 새로 설치할 필요는 없다.



export PROXY_VER=2.0.4


사실 이거 할 필요 없을 수 있는데 우리는 해주자.

그래야 나중에 docker script나 shell script에 도입하기 편하기 때문이다.



wget https://github.com/sysown/proxysql/releases/download/v${PROXY_VER}/proxysql_${PROXY_VER}-debian9_amd64.deb -O /opt/proxysql_${PROXY_VER}-debian9_amd64.deb


해당 깃에서 다운로드 받아온다. 버전은 위에 정한 변수로 했는데 변수로 안해도 된다.

그럴 경우 직접 넣어주자.



dpkg -i /opt/proxysql_${PROXY_VER}-debian9_amd64.deb


그다음 dpkg명령어로 deb파일 실행해준다.



rm -f /opt/proxysql_${PROXY_VER}-debian9_amd64.deb && rm -rf /var/lib/apt/lists/*


그 다음에 설치 파일들은 제거해준다.



apt-get update && apt-get install -y mysql-server


이제 mysql을 설치해준다. 왜냐하면 proxysql은 mysql로 접속이 가능하기 떄문이다.



proxysql --initial


이제 porxysql을 실행한다.



mysqld


이제 mysqld마저 실행해준다.


이제 모든 준비는 끝났으니 설치가 제대로 됬는지 확인해보자.



vim /etc/proxysql.cnf


해당 prodysql.cnf가 있는지 확인하자.



제대로 실행되는걸 보면 설치된 것이다. 아직 사용하지 않을 것이므로 그냥 종료해준다.



mysql -uadmin --port 6032 -h 127.0.0.1 -padmin


기본은 port가 6032로 설정되있다.

또한 기본 사용자 ID와 Password는 adminadmin이다.


접속해 주고 마지막 설정을 해준다.



update main.global_variables set variable_value='<admin id>:<admin pw>' where variable_name = 'admin-admin_credentials';

LOAD MYSQL VARIABLES TO RUNTIME;

SAVE MYSQL VARIABLES TO DISK;

LOAD ADMIN VARIABLES TO RUNTIME;

SAVE ADMIN VARIABLES TO DISK;


외부에서도 사용가능하게 해줘야한다.

먼저 사용자를 만들어주고 밑에 4개의 명령어로 등록해준다.


아이디와 패스워드는 myadmin과 myadmin이다.

이렇게 해줘야만 다른 컴퓨터(다른 vm 혹은 다른 컨테이너)에서 접속할 수 있다.

왜냐하면 일반 admin계정은 외부에서는 접근 불가이기 때문이다.

일단 이 설정을 하고 나면 더이상 admin으로 사용할 수 없고 myadmin이라는 계정으로 사용해야한다.



이제 외부에서 우리가 위에서 만들어준 myadmin계정으로 접근해 보면 접근이 되는걸 확인할 수 있다.


다음 포스팅에서 설정을 추가적으로 하고 mysql을 연결해보도록하자.

+ Recent posts