programing

Postgre에 연결하려면 어떻게 해야 합니까?데이터베이스 이름을 지정하지 않은 SQL?

iphone6s 2023. 10. 4. 21:02
반응형

Postgre에 연결하려면 어떻게 해야 합니까?데이터베이스 이름을 지정하지 않은 SQL?

Postgre에 접속해야 합니다.SQL 서버는 몇 가지 자격 증명을 제공하고 해당 호스트에서 특정 사용자에 대해 사용 가능한 데이터베이스 목록을 인쇄합니다.

노력중입니다.

<?php
    $connection = pg_connect("host=localhost user=testuser password=123 connect_timeout=5");
?>

이해가 갑니다.

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: database "testuser" does not exist in /var/www/test.php on line 56

phpPgAdmin이 하기 때문에 이것이 반드시 가능할 것이라 생각했는데, phpPpAdmin 소스를 살펴보니 이름이 붙은 데이터베이스에 연결되어 있습니다.template1.

http://www.postgresql.org/docs/8.1/interactive/manage-ag-templatedbs.html 에서:

CREATE DATABASE는 실제로 기존 데이터베이스를 복사하여 작동합니다.기본적으로 template1이라는 이름의 표준 시스템 데이터베이스를 복사합니다.따라서 데이터베이스는 새 데이터베이스가 만들어지는 "템플릿"입니다.템플릿 1에 개체를 추가하면 이러한 개체가 이후에 생성된 사용자 데이터베이스에 복사됩니다.이 동작을 통해 데이터베이스의 표준 개체 집합에 대한 사이트-로컬 수정이 가능합니다.예를 들어 template1에 절차 언어 PL/pgSQL을 설치하면 해당 데이터베이스를 만들 때 추가 작업을 수행하지 않고도 사용자 데이터베이스에서 자동으로 사용할 수 있습니다.

데이터베이스를 지정하지 않고 연결할 수 있는 방법이 있습니까?

데이터베이스에 연결해야 합니다."유지관리 데이터베이스"에 사용할 수 있는 데이터베이스는 설치 및 이후 관리에 따라 달라집니다.기본 설치 후 초기 연결에 사용할 수 있는 데이터베이스는 "template1"과 "postgres" 두 가지입니다.새 사용자와 같은 이름의 데이터베이스를 만들어 사용하는 것이 현명합니다.

일반적으로 Maintenance DB에 연결하지 않는 이유는 어떨까요?postgres효과가 있을지 모르겠네요하지만 특정 사용자가 사용할 수 있는 데이터베이스를 검색하려면 이 데이터베이스를 쿼리해야 할 것으로 생각합니다.

pg_connect의 매뉴얼에 따르면 연결 문자열의 dbname 매개 변수는 기본적으로 사용자 매개 변수 값으로 설정됩니다.그래서 'test user'를 사용합니다.dbname을(를) 비워두려면 다음을 수행합니다."... dbname='' ...".

언급URL : https://stackoverflow.com/questions/4483139/how-do-i-connect-to-postgresql-without-specifying-a-database-name

반응형