![psql 버전을 변경하는 방법은 무엇입니까?](https://linux55.com/image/147539/psql%20%EB%B2%84%EC%A0%84%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 시스템에서 보고 있는데 usr/bin/psql
사용해야 하는데 /usr/pgsql-10/bin/psql
어떻게 변경해야 할지 모르겠습니다. 첫 번째 항목을 삭제하거나 이름을 바꾸면 안 될 것 같습니다. 파일 시스템을 최소한으로 변경하면서 내 시스템이 다른 시스템을 사용하도록 하려면 어떻게 해야 합니까? alias
내 것에서 사용 하나요 .bash_profile
?
그런데 첫 번째 버전은 9.2.24이고 두 번째 버전은 10.6입니다.
답변1
별칭을 사용하면 됩니다. 데이터베이스에 대한 모든 연결 정보를 포함하는 별칭을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
alias mydb='/usr/pgsql-10/bin/psql -h localhost -p 5433 -U myuser mydatabase'
이렇게 하면 모든 항목을 다시 입력할 필요가 없습니다. 필요한 경우 셸에서 psql 9.2 버전에 계속 액세스할 수 있습니다. (위에서는 postgresql-10 데이터베이스 서버가 표준 포트 5432가 아닌 5433에서 수신하고 있다고 가정합니다.)
답변2
질문에는 Linux 배포판이 언급되어 있지 않지만 /usr/pgsql-10/bin
경로 제안은 RHEL을 기반으로 합니다. 하나의 시스템에 여러 버전의 PostgreSQL을 설치할 수 있으므로,대안/usr/bin
이 프로그램은 RHEL 기반 배포판에서 슬레이브를 관리하는 데 사용됩니다 /usr/pgsql-*/bin
. Debian 기반 배포판도 비슷한 방법을 사용합니다.대안 업데이트프로그램.
설치된 모든 대안을 나열합니다.
$ alternatives --list
pgsql-pg_config auto /usr/pgsql-14/bin/pg_config
pgsql-createdb auto /usr/pgsql-14/bin/createdb
...
pgsql-psql auto /usr/pgsql-14/bin/psql
...
특정 프로그램에 대한 대안을 나열하십시오.
$ alternatives --display pgsql-psql
pgsql-psql - status is auto.
link currently points to /usr/pgsql-14/bin/psql
/usr/pgsql-14/bin/psql - priority 1400
Current `best' version is /usr/pgsql-14/bin/psql.
다양한 대안 중에서 선택하세요:
$ sudo alternatives --config pgsql-psql
There is 1 program that provides 'pgsql-psql'.
Selection Command
-----------------------------------------------
*+ 1 /usr/pgsql-14/bin/psql
Enter to keep the current selection[+], or type selection number:
답변3
셸 초기화 파일 끝에 다음을 추가하면 됩니다(예를 들어 다음을 사용 하는 경우 /usr/pgsql-10/bin
) ./usr/bin
$PATH
~/.bashrc
bash
PATH=/usr/psql-10/bin:$PATH
psql
기본 경로 대신 from을 사용해야 하는 모든 스크립트에서 /usr/psql-10/bin
동일한 작업을 수행할 수 있습니다( PATH
스크립트에서 from을 수정해야 함).일찍스크립트에서).
수정은 PATH
다양한 유틸리티의 대체 구현을 사용하여 시스템에서 스크립트 또는 셸 세션의 "특성"을 변경하는 가장 일반적인 방법입니다.
답변4
알고 보니 postgresql.x64_86
비슷한 것이 설치되어 있었습니다. 꺼내보니 psql
$PATH가 이미 정확했기 때문에 올바른 것이 자동으로 선택되었습니다.