Database/Postgresql
postgres psql 을 찾지 못하는 문제
LukeHan1128
2021. 3. 4. 20:00
반응형
서버 이전 진행 중 기존의 postgresql 과 동일한 버전을 설치 하였으나 이전과는 설치방식(대화형으로 변경됨) 및 설치경로가 달라져 있었다.
변경된 postgresql 의 기본 설정을 유지하며 설치 진행.
설치한 뒤 sudo -u postgres psql template1 로 접속하려 하였으나 psql 을 찾을 수 없다는 로그를 출력
참고를 확인해 보면 sudo 에서 사용할 수 있도록 postgres 의 경로를 추가해야 한다고 한다.
경로 확인
sudo -u postgres printenv PATH
# 출력된 결과물
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
출력내용을 보면 psql 의 경로가 없다.
해당 경로를 추가하도록 한다.
psql 경로 등록
sudo visudo
# 파일이 열릴 것이다 다음의 행을 확인한다.
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# 찾았다면 다음과 같이 postgresql 경로를 추가한뒤 저장하고 종료한다.
# : 를 구분자로 사용한다.
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/PostgreSQL/9.5/bin"
# 제대로 등록이 되었는지 확인한다.
sudo -u postgres printenv PATH
# 이상이 없다면 등록했던것과 동일하게, 다음과 같이 나올 것이다.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/PostgreSQL/9.5/bin
# 다음을 입력하여 제대로 사용가능한지 확인한다.
sudo -u postgres psql -l
# 이상이 없다면 다음과 같이 나타날 것이다.
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+---------+---------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 rows)
참고 : https://serverfault.com/questions/541847/why-doesnt-sudo-know-where-psql-is
반응형