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
'programing' 카테고리의 다른 글
| 기본 앵커 동작 방지 AngularJS (0) | 2023.10.04 |
|---|---|
| AngularJS에서 $http 업로드 파일 진행률 (0) | 2023.10.04 |
| 런타임에 프로그래밍 방식으로 "android:layout_below"를 설정할 수 있습니까? (0) | 2023.10.04 |
| 시퀀스에 대한 Python 'enumerate'와 동일한 ES6은 무엇입니까? (0) | 2023.10.04 |
| PowerShell - HTML 구문 분석: 웹 사이트에서 정보 가져오기 (0) | 2023.10.04 |