(Debian 9) 내 로컬 컴퓨터에서 postgresql 서버가 실행되는 이유는 무엇입니까?

(Debian 9) 내 로컬 컴퓨터에서 postgresql 서버가 실행되는 이유는 무엇입니까?

관심을 갖기 시작했어요https://www.postgresql.org/docs/9.6/runtime.html테스트 및 개발을 위해 로컬 postgresql 서버를 설정하는 데 사용됩니다. 나는 이미 postgresql패키지를 설치했고, postgres사용자가 이미 존재했으며, postgresql 서버가 이미 127.0.0.1:5432.

이전에 이 명령을 사용하여 psql원격 postgresql 데이터베이스에 연결했지만 로컬 postgresql 데이터베이스를 설정한 기억이 없기 때문에 이것은 이상합니다.

데이터베이스에 연결하려고 하는데 psql -h 127.0.0.1 -p 5432비밀번호를 묻는 메시지가 나타납니다. 빈 비밀번호를 입력하면 유효하지 않습니다. 저도 postgres사용자가 되려고 했는데 su postgres비밀번호를 다시 입력하라는 메시지가 표시되었습니다.

서버 데이터 디렉터리의 위치를 ​​모르겠습니다.데이터베이스 클러스터 생성제안되었지만 /usr/local/pgsql/data로컬 /usr/local/pgsql서버를 설정하려고 할 때 생성하기 전에는 존재하지 않았습니다.

내 마지막 질문은 다음과 같습니다.

  • 내 로컬 컴퓨터에서 postgresql 서버가 실행되는 이유는 무엇입니까?

관련 질문은 다음과 같습니다.

  • 서버의 데이터 디렉토리를 찾는 방법은 무엇입니까? (로그가 포함되어 있기를 바랍니다.)
  • postgres사용자가 언제 생성되었는지 확인하는 방법은 무엇입니까 ?
  • 데이터베이스 및 사용자 비밀번호를 복구하는 방법은 무엇입니까 postgres?
  • 또는 데이터베이스 비밀번호를 복구하지 않고 데이터베이스의 내용을 볼 수 있습니까?

답변1

apt-get install postgresql어느 순간 도망친 것 같군요 . 이 경우 Debian의 기본 PostgreSQL 설정이 있을 수 있습니다. 이에 대한 일부 정보는 다음과 같습니다.데비안 위키에서 찾을 수 있습니다.일부는 에 있습니다 /usr/share/doc/postgresql-common/README.Debian.gz.

Debian 설정은 여러 "클러스터"(PostgreSQL 인스턴스 실행 및 여러 다른 PostgreSQL 버전)를 지원합니다. 컴퓨터에 어떤 것이 있는지 확인하려면 다음을 실행하세요 pg_lsclusters.

$ pg_lsclusters 
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

인증에 대한 기본 설정(선택됨 /etc/postgresql/«version»/«cluster-name»/pg_hba.conf- 아마도 /etc/postgresql/9.6/main/pg_hba.conf)은 로컬 사용자가 "ident"를 사용하여 인증하는 것입니다. 즉, 실행 중인 사용자를 확인하고 비밀번호 프롬프트 없이 Unix 사용자 이름으로 인증하는 것입니다 psql. 따라서 데이터베이스에 들어가려면 다음이 작동해야 합니다.

$ sudo -u postgres psql template1

로컬 Unix 소켓 대신 TCP 연결을 사용하도록 강제하기 때문에 명령이 작동하지 않습니다. (해당 -p옵션을 계속 사용할 수 있지만 -p 5432기본값이므로 생략했습니다.) 기본 인증은 Unix 소켓에서만 작동합니다.

추신: Debian PostgreSQL 설정은 매우 훌륭합니다. 저는 개인적으로 이 패키지를 사용하고 있으며 꼭 필요한 경우가 아닌 이상(예: PostgreSQL의 특정 버전을 구입하기 위해) 제거하고 업스트림 패키지를 설치하는 것보다 계속 사용하는 것을 권장합니다.

답변2

포트 5432에서 무언가가 실행되고 있다고 해서 그것이 Postgres라는 의미는 아닙니다. 무엇이든 될 수 있습니다. postgresql이 실행 중이고 그 이유는 무엇입니까? 신은 알고 계십니다. 이전에 설치한 일부 응용 프로그램에는 필요할 수 있습니다.

실행(root 또는 sudo로): netstat -tlnp포트 5432를 찾습니다. PID/Program name탭에 이와 같은 내용이 표시 되면 1361/postgrespostgresql일 가능성이 높습니다.

사용자는 언제 postgres생성되었나요? 포스트그레스가 설치되면 APT 기록 파일을 확인하세요. 정확한 파일을 찾아 추가로 조사하고 날짜와 시간을 얻을 수 있습니다.

for i in $(ls /var/log/apt/history.log*); do echo $i && zcat $i | grep --color postgresql; done

Postgres 비밀번호를 재설정하는 방법:협회

편집: 아마도 다음이 필요할 것입니다:sudo -u postgres psql.

관련 정보