작성
·
592
0
좋은 강의 제공해주셔서 많이 배우고 갑니다. 실습 과정중 오류가 발생하여 문의 드립니다.
환경 : 맥북 + Docker 환경
진행사항 : proxysql 이전 과정까지는 정상 완료 (replication, Orchestrator)
사전 작업
centos7 docker 생성 후 app_test_conn.sh 수행 예정
centos docker run -it --name centos7 -h centos7 \
--net mybridge --net-alias=proxysql \
--privileged centos:7 init
오류 현상 01 : app_test_conn.sh 수행시 오류
centos7 에서 app_test_conn.sh 수행시 16033 포트로 연결이 되지 않음
tcping proxysql 16033 수행시 포트가 close 되어있는 부분 확인, proxysql 데비안 리눅스 환경 확인 후 포트를 열어볼려고 했지만 진행하지 못함.
그래서 poxysql docker의 포트를 6032, 6033으로 다이렉트로 연결해서 생성 후 수행
docker run -it --name proxysql -h proxysql -p 6032:6032 -p 6033:6033 \ --net mybridge --net-alias=proxysql \ -v /Users/hansung/docker/db/proxysql/data:/var/lib/proxysql \ -v /Users/hansung/docker/db/proxysql/conf/proxysql.cnf:/etc/proxysql.cnf \ -d proxysql/proxysql
오류 현상 02 : app_test_conn.sh 수행시 오류
수행시 아래와 같은 오류 발생 (mysql -uappuser -papppass -hproxysql -P6033)
[root@centos7 ~]# sh app_test_conn.sh
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'appuser'@'172.19.0.7' (using password: YES)
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'appuser'@'172.19.0.7' (using password: YES)
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'appuser'@'172.19.0.7' (using password: YES)
트러블 슈팅을 위해서 db01 mysql에 다이렉트로 연결하는 부분으로 설정후 연결 시도. (centos7 > db01)
아래와 같이 정상적으로 연결 확인. (mysql -uappuser -papppass -hdb01 -P3306)
[root@centos7 ~]# sh app_db01_conn.sh
db01 2020-12-09 13:40:24
db01 2020-12-09 13:40:25
참고. 강의 자료의 app_test_conn.sh의 ip 정보는 알수 없는 ip로 proxysql ip로 지정해서 연결 시도 했음.
docker inspect --format '{{.NetworkSettings.Networks.mybridge.IPAddress}}' proxysql
어제 밤부터 삽질 중입니다. 도와주세요.
답변 4
1
아이쿠...고생하셨겠네요..
원인 찾기가 쉽지 않았겠어요. ㅠㅠ
그래도 찾아내서 다행입니다. 지금 수강하시는 분들 중에 가장 진도가 빠르세요. ^^
부족한 강의를 잘 들어 주셔서 감사합니다.
1
해결 했습니다. proxysql 문법이 익숙하지 않아서 발생한 부분입니다.
아래 구문 입력 후 "LOAD MYSQL USERS TO RUNTIME;", "SAVE MYSQL USERS TO DISK;"를 입력해야하는데요.
"LOAD MYSQL SERVERS TO RUNTIME;"를 입력해서 발생한 부분입니다. (복붙하다보니 ㅡㅜ)
insert into mysql_users(username, password, default_hostgroup, transaction_persistent) values ('appuser', 'apppass', 10, 0);
LOAD MYSQL USERS TO RUNTIME;
SAVE MYSQL USERS TO DISK;
이어서 실습 계속 하도록 하겠습니다. 고맙습니다.
0
네, 빠른 답변 감사합니다.
맥북 환경에서 재 수행해보았는데요. 오류가 발생하네요.
제가 조금더 살펴보도록 하겠습니다.
base ❯ cat app_test_conn.sh ...
mysql -uappuser -papppass -h222.99.149.73 -P16033 -N -e "select @@hostname,now()" 2>&1| grep -v "Warning" │
...
│
base ❯ sh app_test_conn.sh
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'appuser'@'172.19.0.1' (using password: YES)
ERROR 1045 (28000): ProxySQL Error: Access denied for user 'appuser'@'172.19.0.1' (using password: YES)
^Z
[6] + 11950 suspended sh app_test_conn.sh
0
외부에서 proxysql로 접속할때 사용된 host의 ip는 docker가 설치된 host의 IP 입니다.
mysql -uappuser -papppass -hproxysql -P6033
위 명령어 부분에서 -hproxysql 이 부분을 -h [docker-host-ip]로 변경해서 한번 시도해 보시겠어요?
저도 이와 같은 실수로 엄청난 삽질을 했는데 진작 이 글을 찾아볼걸 그랬네요 정말 감사합니다!!!!!! 저도 같은 방법으로 해결했습니다!