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

 

반응형