programing

Postgresql 서버에서 postgres라는 기본 데이터베이스

muds 2023. 5. 21. 12:03
반응형

Postgresql 서버에서 postgres라는 기본 데이터베이스

각 postgresql 서버 설치에 기본적으로 생성되는 데이터베이스 "postgres"가 있습니다.누가 나에게 그것이 무엇에 사용되는지 알려주거나 문서화를 알려줄 수 있습니까?

클라이언트 응용프로그램이 Postgres 서버에 연결할 때 연결할 데이터베이스를 지정해야 합니다.데이터베이스 이름을 모르는 경우(연결할 포스트마스터가 서비스하는 클러스터 내), 다음 명령을 사용하여 데이터베이스 이름 목록을 찾을 수 있습니다.

psql -l

이 명령을 실행하면 psql이 서버에 연결되고 pg_database에 데이터베이스 이름 목록을 쿼리합니다.그러나 psql은 Postgres 클라이언트 응용 프로그램이므로 하나 이상의 데이터베이스 이름을 모르면 서버에 연결할 수 없습니다.캐치-22.따라서 psql은 실행할 때 "postgres"라는 데이터베이스에 연결하기 위해 하드 코딩됩니다.psql -l그러나 이 경우 템플릿 데이터베이스를 지정할 수 있습니다.

psql -l -d template1

그것은 실제로 명확한 목적을 가지고 있지 않은 것으로 보입니다.문서에 따르면:

데이터베이스 클러스터 작성은 데이터베이스 데이터가 저장될 디렉토리 작성, 공유 카탈로그 테이블(특정 데이터베이스가 아닌 전체 클러스터에 속하는 테이블) 생성, "template1" 및 "postgres" 데이터베이스 작성으로 구성됩니다.

[...]

postgres 데이터베이스는 사용자, 유틸리티 및 타사 응용 프로그램에서 사용하기 위한 기본 데이터베이스입니다.

(출처: http://www.postgresql.org/docs/current/app-initdb.html )

다른 모든 것을 망쳤을 때 안전망인 데이터베이스 template0도 있습니다.

  1. postgres는 연결할 기본 데이터베이스입니다.
  2. 새 데이터베이스를 만들기 위한 기본값은 template1이며, 새 데이터베이스는 template1과 동일하게 생성됩니다.
  3. template0은 template1이 손상된 경우(예: 설정 손상) 유용하며 이 문제를 해결하는 데 많은 시간을 들이지 않을 수 있습니다.template1을 삭제하고 데이터베이스 template0을 사용하여 새 template1을 생성합니다.

위의 의견은 "포스트그레스 데이터베이스를 사용하지 않는다면 삭제하는 것이 안전한가요?"라고 물었습니다. - CMCDragonkai '16년 10월 22일 10:37

포스트그레에서SQL 설명서

초기화 후 데이터베이스 클러스터에는 postgres라는 이름의 데이터베이스가 포함됩니다. 이 데이터베이스는 유틸리티, 사용자 및 타사 응용 프로그램에서 사용하는 기본 데이터베이스입니다.데이터베이스 서버 자체에는 postgres 데이터베이스가 필요하지 않지만 많은 외부 유틸리티 프로그램은 이 데이터베이스가 존재한다고 가정합니다.

[참고: 데이터베이스 클러스터는 실행 중인 데이터베이스 서버의 단일 인스턴스에 의해 관리되는 데이터베이스 모음입니다.]

새로 때 개의 연결을 에는 모든 을 " " " " " " " " " " " " " " " " " " " " " " 에 연결할 수 없습니다.template1또는template0.

새 DB를 만드는 동안 원본 DB에 다른 연결로 액세스하면 Postgresql에서 오류가 발생합니다.

새로운 는 를서새 DB생려성연결면다좋것습니이는하따라하다▁so▁connect니▁is▁to▁better를 연결하는 것이 좋습니다.postgres.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/2370525/default-database-named-postgres-on-postgresql-server

반응형