테스트 및 개발 목적으로 로컬 postgresql 서버를 설정하기 위해 https://www.postgresql.org/docs/9.6/runtime.html 을 따르기 시작했습니다 . 이미 postgresql
패키지가 설치되어 있고 postgres
사용자가 이미 존재하며 .NET에서 수신하는 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
로컬 서버를 설정하는 동안 내가 그것을 만들기 전에 존재하지 않았다.
내 궁극적 인 질문은 :
관련 질문은 다음과 같습니다.
postgres
사용자가 생성 된 시기를 어떻게 확인 합니까?postgres
사용자 의 비밀번호를 어떻게 복구 합니까?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
인증을위한 기본 설정 (check /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을 얻기 위해) 필요하지 않는 한, 그것을 제거하고 업스트림 패키지를 설치하는 대신 그것을 고수하는 것이 좋습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다