특정 postgresql 버전에 로그인하는 방법


5

우분투 상자에 여러 버전의 postgresql이 설치되어 있습니다. 9.3은 실제적인 것입니다. 방금 9.4를 설치하여 복제 테스트를 수행했습니다.

두 가지 버전이 실행되고 있다고 생각하는 이유는 다음과 같습니다.

test@testdev:/usr/lib/postgresql$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
9.4 main    5433 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
test@testdev:/usr/lib/postgresql$ 

또한:

test@testdev:/usr/lib/postgresql$ ls
9.3  9.4

그리고 마지막으로:

test@testdev:~$ /etc/init.d/postgresql stop
 * Stopping PostgreSQL 9.3 database server
     * Error: You must run this program as the cluster owner (postgres) or root [fail]
 * Stopping PostgreSQL 9.4 database server
     * Error: You must run this program as the cluster owner (postgres) or root [fail]

질문 :

두 가지 질문이 있습니다.

  1. 두 개의 서로 다른 서버를 올바르게 설치했다고 가정하면 각 서버 버전에 대해 명령 줄을 어떻게 시작합니까?

    나는 보통 이런 식으로 9.3 데이터베이스에 로그인합니다.

test@testdev:/usr/lib/postgresql$ sudo -i -u postgres
postgres@testdev:~$ psql
psql (9.4.1, server 9.3.5)
Type "help" for help.
postgres=# select version();

                                             version                                                
------------------------------------------------------------------------------------------------------
 PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1, 64-bit
(1 row)
  1. 위의 "psql (9.4.1, server 9.3.5)" 참조는 무엇입니까?
    9.3 서버에서 9.4.1 클라이언트를 실행하고 있다는 의미입니까?

감사.

편집 1

나는 방금 시도했다 :

test@testdev:/usr/lib/postgresql$ sudo -i -u postgres:5433
sudo: unknown user: postgres:5433
sudo: unable to initialize policy plugin

그리고 또한:

test@testdev:/usr/lib/postgresql$ sudo -i -u postgres --port 5433
sudo: unrecognized option '--port'
usage: sudo -h | -K | -k | -V
usage: sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
usage: sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
usage: sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file ...

@Rinzwind 옵션 중 어느 것도 작동하지 않았습니다. 결과에 대해서는 "편집 1"을 참조하십시오.
dot

"sudo -i -u postgres : 5433"또는 "sudo -i -u postgres --port 5433"은 언제 청구 했습니까? lol. 죄송합니다. 두 가지 명령을 사용하지 않았습니다. 모든 후행은 "psql"명령과 함께 진행되어야합니다.
Rinzwind 2019

답변:


1

두 개의 서로 다른 서버를 올바르게 설치했다고 가정하면 각 서버 버전에 대해 명령 줄을 어떻게 시작합니까?

postgres의 특정 포트에 연결하는 명령은 다음과 같습니다.

psql -h localhost -p 5433

나는 당신이 사용해야한다고 가정합니다 ...

sudo -i -u postgres
psql -p 5433

최소한으로 (5432가 기본값). 로부터 psql의 남자 :

-p port
--port=port

Specifies the TCP port or the local Unix-domain socket file extension 
on which the server is listening for connections. 
Defaults to the value of the PGPORT environment variable or, 
if not set, to the port specified at compile time, usually 5432

위의 "psql (9.4.1, server 9.3.5)"참조는 무엇입니까?

  • "psql 9.4.1"은 psql 버전입니다. 해당 스크립트는 9.4 서버를 설치할 때 업데이트되었을 수 있습니다. psql --version명령 버전을 보여줍니다. 9.4 서버를 지원하려면 9.4.1 버전의 psql이 필요하며 9.3과 역 호환 가능하지만 9.3 버전의 psql은 9.4 서버를 지원하지 않습니다. 나에게 맞는 것 같습니다.
  • "서버 9.3.5"는 서버입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.