오늘은 pgadmin을 사용하다가 발생한 오류 해결과정입니다.
평소처럼 docker에 pgadmin 컨테이너 올려서 접속하려고 하는데, 너무 오랜만에 접속해서 비밀번호를 여러 번 틀렸더니, 아래와 같이 Your account is locked. Please contact the Administrator. 라면서 비밀번호가 잠겨버렸다;;;
(나중에 알고보니 원래 틀릴 때마다 기회 몇 번 남았다고 경고를 줬었네..)
아무튼 위와 같이 잠겨버렸을 때 다시 푸는 방법을 알아보도록 하겠다~
우선 나처럼 docker 사용자라면 컨테이너로로 접속해야 하고, 아니면 그냥 터미널에서 진행하면 된다.
1. Install sqlite
#[Debian]
apt update && apt install -y sqlite3
#[Alpine]
apk update && apk add sqlite
#[CentOS/RHEL]
yum install -y sqlite
우선 자신의 OS에 맞게 `sqlite`를 설치해준다. 이때 docker에서 실행할 때 permission error가 날 경우 컨테이너에 접속할 때 루트 권한으로 접속해서 실행하면 된다.
docker exec -it -u root <container_name_or_id> /bin/sh
2. Updating SQLite DB
그 다음 `/var/lib/pgadmin4`경로로 이동하여 아래 명령어에 자신의 계정을 입력하여 잠긴 계정을 풀어준다.
cd /var/lib/pgadmin
sqlite3 pgadmin4.db "UPDATE USER SET LOCKED = false, LOGIN_ATTEMPTS = 0 WHERE USERNAME = '{your_account}';"
만약 `/var/lib/pgadmin`이 없다면, `/var/lib/pgadmin4`가 있는지 확인해 보자.
3. Change max attempts
그리고 만약 로그인 시도 횟수 제한을 바꾸고 싶다면, pgadmin의 config를 수정해 주면 된다.
이 config파일의 경로도 모두 다른데, 우선 나는 alpine 이어서 `/pgadmin4/config.py`였다.
공식문서에 따르면 config파일의 경로는 아래와 같다고 한다.
Os에 맞게 `config.py`를 찾았다면 파일을 열어서 `MAX_LOGIN_ATTEMPTS` 부분을 자신이 원하는 데로 수정해 주면 된다!
Reference