작성
·
478
0
상위의 명령어를 입력하면
ERROR 1045 (28000) at line 1: Access denied for user 'appuser'@'proxysql.compose_mybridge' (using password: YES)
이런 메시지가 출력됩니다.
proxysql 로그를 보면
proxysql | 2022-01-29 05:06:16 mysql_connection.cpp:1022:handler(): [ERROR] Failed to mysql_real_connect() on 20:db001:3306 , FD (Conn:43 , MyDS:43) , 1045: Access denied for user 'appuser'@'proxysql.mybridge' (using password: YES).
위와 같이 에러가 발생하며, 사실 3개 db 모두 접근을 시도 하지만 에러가 발생됩니다.
각 db container들에서 상호간 -uappuser -papppass 를 사용하면 모두 원격으로 접속이 됩니다.
이러한 경우 어떤 부분을 살펴봐야 할까요?
proxysql의 command에서 연결을 확인할 방법이 따로 있을까요?
* 혹시나 확인해본 runtime_mysql_server의 테이블 결과에서 각 db의 연결 상태는 online으로 확인하였습니다.
이러한 상황에서 문제를 해결하기 위한 접근을 어떻게 하면 좋을지 조언이 필요합니다.
답변 1
0
안녕하세요.
아래 구문에서 호스트 정보는 127.0.0.1 이 아닌 docker host의 ip를 이용해서 테스트 해보시겠어요?
mysql -uappuser -papppass -h172.31.10.19 -P16033 -N -e "select @@hostname,now()" 2>&1| grep -v "Warning"
localhost에서 docker 내부 dns로 할당된 ip로 접근이 안되는 걸로 알고 있습니다.
위의 명령어는 실행이 안됩니다.
위 이미지는 내부 ip로 접속 시도를 하면 에러가 발생되고 localhost로 접속시 연결이 되는 결과입니다.
db에서도 확인이 됩니다
해당 문제의 원인은 다음과 같았습니다.
mysql, maridb는 업버전을 하면서 암호화 플러그인이 추가, 변경되었습니다.
아래는 현재 기본으로 요구되는 암호 설정입니다
default_authentication_plugin = caching_sha2_password
아래는 기존 암호 설정 방법 입니다.
default-authentication-plugin = mysql_native_password
my.cnf에 기존 암호 방법으로 설정을 하면 접근과 관련된 에러가 해결이 됩니다.
현재 배포된 최신 percona server : Percona-Server-client-57-5.7.36-39.1.el7.x86_64.rpm
기존 강좌에 사용하던 버전보다 릴리즈된 버전의 수가 높은 만큼
실재 강의를 듣고 최신 버전을 다운받으면 이와 같은 문제가 발생할 수 있습니다.
참고 하시면 좋으실것 같습니다.
해당 문제는 상위 방법으로 해결되었습니다.