소개

PostgreSQL 강력한 개체-관계형 데이터베이스 관리 시스템에서 제공하는 유연하 BSD 스타일 라이센스입니다. PostgreSQL 에는 많은 고급 기능이 포함되어 있으며 매우 빠르며 표준을 준수합니다.

PostgreSQL 에는 C,C++,Python,Java,PHP,Ruby 와 같은 많은 프로그래밍 언어에 대한 바인딩이 있습니다… 사용될 수 있 전원 아무것도에서 간단한 웹 응용 프로그램을 대규모 데이터베이스의 수백만과 함께 기록합니다.,

클라이언트 설치

경우에만 연결을 원하는 외부 PostgreSQL 서버에 설치하지 마십시오 주 PostgreSQL 패키지를 설치 PostgreSQL 클라이언트 패키지 대신 합니다. 이렇게 하려면 다음 명령을 사용합니다.

 sudo apt-get install postgresql-client

당신은 다음 서버에 연결 다음과 같은 명령

 psql -h server.domain.org database user

한 후 삽입 비밀번호 액세스 PostgreSQL 인 명령입니다., 할 수 있습에 대한 인스턴스는 다음과 같은 기

 SELECT * FROM table WHERE 1;

를 종료하이의 연결과 함께

 \q

설치

서버를 설치하는 로컬로 사용하여 명령 라인과 유형:

 sudo apt-get install postgresql postgresql-contrib

이 설치 최신 버전에서 사용 가능한 우분투 릴리스는 일반적으로 사용되는 기능을 추가한다.

최신 릴리스를 얻는 옵션은 아래의”외부 링크”를 참조하십시오.,

설치 PostGIS,절차 언어,클라이언트 인터페이스,etc.

추가 패키지를 포함하는 절차 언어 런타임과 같은 부가 기능을 PostGIS,언어는 클라이언트 인터페이스는 다음과 같 psycopg2for Python,etc. 다음과 같은 목록을 얻을 수 있습니다.

 apt-cache search postgres

관리

pgAdmin III 는 PostgreSQL 을위한 편리한 GUI 이며 초보자에게 필수적입니다. 이 인터페이스를 설치하려면에서 입력한 명령:

 sudo apt-get install pgadmin3

사용할 수도 있습니다 Synaptic 패키지 관리자 시스템에서>관리자 메뉴에서 이러한 패키지를 설치하.,

기본 서버 설정

시작하려면”postgres”라는 PostgreSQL 사용자(역할)의 암호를 설정해야합니다. 로컬”postgres”Linux 사용자로서 psql 명령을 사용하여 서버를 연결하고 조작 할 수 있습니다.

터미널,종류:

sudo -u postgres psql postgres

이 연결으로 역할과 이름이 같은 지역의 사용자,즉”postgres”,데이터베이스”라고 postgres”(1 인수하십시오.).,

비밀번호를 설정한”postgres”데이터베이스 역할을 사용하여 명령:

\password postgres

와 비밀번호를 부여지도 있습니다. 암호 텍스트는 보안 목적으로 콘솔에서 숨겨집니다. Posgresql 프롬프트를 종료하려면 Control+D 또는\q 를 입력하십시오.

데이터베이스 만들기

을 만드 첫 번째 데이터베이스는 우리가”mydb”,단순히 입력:

 sudo -u postgres createdb mydb

설치 서버 Instrumentation(for PgAdmin)Postgresql8.4 또는 9.3

PgAdmin 의 설치가 필요한 추가에 대한 전체 기능이 있습니다., 는”adminpack”부가 호출되는 계측 서버의 일부입 postgresql-contrib,그래서 당신이 설치해야 하는 패키지지 않은 경우:

 sudo apt-get install postgresql-contrib

그 확장을 활성화하고,””Postgresql8.4″”,실행 adminpack.sql 스크립트,단순히 입력:

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

“에 대한 Postgresql9.3″+을 설치하 adminpack”extension”에서”postgres”데이터베이스

 sudo -u postgres psql CREATE EXTENSION adminpack;

대체 서버 설정

지 않는 경우에 연결하고자 하는 데이터베이스에서 다른 컴퓨터에 이를 대체 설치 될 수있다 더 간단합니다.,

기본적으로 Ubuntu 에서 Postgresql 은 동일한 시스템의 모든 연결에 대해’ident sameuser’인증을 사용하도록 구성됩니다. 체크 아웃이 우수한 Postgresql 자세한 내용은 설명서를,그러나 기본적으로 이는 우분투하는 경우 사용자 이름은’foo’추가’foo’로 Postgresql 사용자가 다음 연결할 수 있는 데이터베이스 암호를 요구하지 않고.,

이후에만 사용자가 연결할 수 있는 새로 설치하는 postgresql 사용자,여기를 만드는 방법을 자신에게 데이터베이스 계정(이 경우에도 데이터베이스 으)로과 동일한 이름으로 귀하의 로그인 이름을 만들에 대한 암호를 사용:

 sudo -u postgres createuser --superuser $USER sudo -u postgres psql
 postgres=# \password $USER

클라이언트 프로그램이 기본적으로, 로컬 호스트를 사용하여 우분투 로그인이 이름과를 찾을 것으로 예상 데이터베이스는 이름도., 그래서 할 일을 정말 쉽게 사용하여 새로운 수퍼유저 권한을 부여 위의 데이터베이스를 만들과 동일한 이름으로 귀하의 로그인 이름:

 sudo -u postgres createdb $USER

연결하고 당신의 자신의 데이터베이스도 몇 가지 SQL 금으로 쉽게 될:

 psql

작성 추가적인 데이터베이스로 쉽게,그래서 예를 들어,후 실행하는 이:

 create database amarokdb;

할 수 있는 바로 가서 말한 록 사용하 postgresql 를 저장하기 위한 음악 카탈로그입니다., 데이터베이스 이름을 것 amarokdb 사용자 이름이 될 것이 자신의 로그인 이름,그리고 당신도 필요하지 않 암호 감사는’ident sameuser’할 수 있는 비어 있습니다.

를 사용하여 pgAdmin III GUI

의 아이디어를 얻을 무엇 PostgreSQL 할 수 있다,당신은 시작될 수 있습을 발사하여 그래픽 클라이언트입니다. 터미널 유형:

 pgadmin3

pgAdmin III 인터페이스가 표시됩니다. “서버에 연결 추가”버튼(왼쪽 상단)을 클릭하십시오. 새 대화 상자에서 주소 127.0.0.1 을 입력하십시오(로컬 호스트는 기본값이므로 밖으로 나갈 수 있습니다.,),서버,기본 데이터베이스(위의 예에서”mydb”),사용자 이름(“postgres”)및 암호에 대한 설명입니다. Pgadmin III 가 서버에 연결할 수 있도록하기 위해 한 단계 더 필요하며 pg_hba 를 편집하는 것입니다.conf 파일과 인증 방법을 변경에서 피어 md5(작동하지 않습니다하지 않은 경우 비밀번호를 설정합):

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

과 변경

# Database administrative login by Unix domain socketlocal all postgres peer

# Database administrative login by Unix domain socketlocal all postgres md5

이제 당신해 다시 서버 구성에 변화와 연결 pgAdmin III PostgreSQL 데이터베이스 서버입니다.,

sudo /etc/init.d/postgresql reload

이 GUI 시작할 수 있을 만들고 관리하는 데이터베이스 쿼리 데이터베이스,SQl 실행 etc.

서버를 관리하

을 관리에 대해 자세히 알아보십시오 PostgreSQL(그러나 우분투 구)공식 PostgreSQL documentation

사용자를 관리하고 권한

사용자리에 자세히 설명되어 있는 클라이언트 인증의 프로그램 설명서는 다음에 대한 소개를 얻을 당신은 시작합니다.

사용자를 관리하려면 먼저/etc/postgresql/current/main/pg_hba 를 편집해야합니다.,conf 및 매우 잠겨 안전한 기본 구성을 수정합니다. 예를 들어,당신이 원하는 경우 그레스를 관리하는 자신의 사용자가(지와 연결 시 사용자는),당신은 다음 줄을 추가합니다:

8<-------------------------------------------# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 10.0.0.0 255.255.255.0 md58<-------------------------------------------

것을 의미하는 로컬 네트워크에서(10.0.0.0/24-으로 교체하여 자신의 로컬 네트워크!),postgres 사용자는 네트워크를 통해 고전적인 커플 사용자/암호를 제공하는 데이터베이스에 연결할 수 있습니다.

외에 사용자를 연결하는 네트워크를 통해 데이터베이스는 서버에서 사용하도록 설정해야 합 PostgreSQL 을 듣고 다양한 네트워크를 통해., 그렇게하려면/etc/postgresql/current/main/postgresql 을 엽니 다.conf 파일에 당신의 마음에 드는 편집기 및 변경 listen_addresses 아래와 같이

listen_addresses = '*'

을 듣는 모든 네트워크 인터페이스가 있습니다. 다른 옵션은 listen_addresses 에 대한 문서를 참조하십시오.

데이터베이스를 만들어 사용하는 것에 대한 모든 권한 데이터베이스를 사용하여 다음과 같은 명령:

sudo -u postgres createuser -D -A -P myusersudo -u postgres createdb -O myuser mydb

첫 번째 명령 라인에 사용자를 만들과 함께 없는 데이터베이스 작성 권한(-D)없이 사용자 권한 추가)및 묻는 메시지를 표시합니다 암호를 입력하(P)., 두 번째 명령 줄은’myuser’를 소유자로 사용하여 데이터베이스’mydb 를 만듭니다.

이 작은 예는 아마도 대부분의 요구에 적합 할 것입니다. 자세한 내용은 해당 맨 페이지 또는 온라인 설명서를 참조하십시오.

서버를 다시 시작

구성한 후에 네트워킹/는 사용자가 서버에,여기서 제안하는 명령하십니다.

sudo /etc/init.d/postgresql reload

postgresql 의 일부 설정 변경.,conf 파일 필요는 전체를 다시 시작,종료됩 active 연결 및 중단되지 않은 각 트랜잭션:

sudo /etc/init.d/postgresql restart

추가 읽기

에 익숙하지 않은 경우에는 SQL 보고 할 수 있습니다 이 강력한 언어 있지만,몇 가지 간단한 사용하는 PostgreSQL 지 않을 수 있습이 필요한 지식(과 같은 간단한 장고한)를 이용하실 수 있습니다

PostgreSQL 웹 사이트에는이 데이터베이스 사용에 대한 풍부한 정보가 포함되어 있습니다. 특히,튜토리얼에 유용한 시작점,그러나 너를 건너 뛸 수 있습니다 설치 단계로서 이미 설치된 우분투를 사용하는 패키지입니다.,

문제 해결

fe_sendauth:암호가 제공되지 않음

귀하의 pg_hba.conf 파일을 지정하는 md5 인증을 위해 사용될 이에 따라 연결 원산지 호스트 연결 방법과 요청한 사용자명/데이터베이스,하지만 응용 프로그램를 공급하지 않습니다.

인증 모드를 변경 또는 세트에 대한 암호를 사용하는 사용자에 연결한 다음을 지정하는 암호에의 응용 프로그램의 연결을 설정합니다.,

치명적인 역할”myusername”존재하지 않

기본적으로 PostgreSQL 연결하 PostgreSQL 사용자와 같은 이름의 현재 unix 사용자. 데이터베이스에서 해당 이름으로 PostgreSQL 사용자를 만들지 않았습니다. 적합한 사용자를 만들거나 연결할 다른 사용자 이름을 지정하십시오. 명령 줄 도구에서-U 플래그가이 작업을 수행합니다.

치명적인 데이터베이스”myusername”존재하지 않

사용자 이름”myusername”존재하지만,없는 데이터베이스의 동일한 이름입니다.,

기본적으로 PostgreSQL 데이터베이스에 연결되과 동일한 이름으로 사용자에 연결하고 있으로,그러나 그것은 하지 않 자동 데이터베이스를 만들면 그것은 존재하지 않습니다. 데이터베이스를 만들거나 연결할 다른 데이터베이스를 지정하십시오.

치명적:사용자”myusername”에 대한 피어 인증 실패

유닉스 소켓을 통해 로컬 호스트에 연결하고 있습니다. “Myusername”이라는 사용자가 존재하지만 현재 unix 사용자는 해당 사용자 이름과 동일하지 않습니다., PostgreSQL 은이 사용자/db 콤보에 대해 unix 소켓에서”피어”인증을 사용하도록 설정되어 있으므로 unix 및 postgresql 사용자 이름이 일치해야합니다.

원하는 PostgreSQL 사용자와 일치하는 unix 사용자(아마도 sudo-u theusername psql-또는 pg_hba 변경)에서 연결하십시오.conf 는이 사용자 이름에 대해”md5″와 같은 다른 인증 모드를 사용합니다.,

서버에 연결할 수 없습니다.:No such file or directory

와 같은 오류가 이(가능하면 다른 유닉스 소켓 경로에 따라 설치):

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

의미할 수 있습니다 숫자의 것:

*서버가 실행되지 않;

*서버가 다른 unix_socket_directories 에서 기본값으로 클라이언트의 libpq,하나 때문에 서로 다른 컴파일된 기본값 또는 일치하지 않는 설정;

*서버는 듣기에는 다른”항구”., PostgreSQL 은 포트 번호를 소켓 파일의 접미사로 사용하여 unix 소켓에서 tcp/IP 포트를 에뮬레이트합니다(예:5432).

차례로 이들을 제거하십시오.

먼저 서버가 실행 중인지 확인하십시오. 우분투에서 ps-u postgres-f 는 사용자 postgres 로 실행되는 모든 프로세스를 보여줍니다-postgres 라는 여러 프로세스를 보려고합니다.

이제 서버가 클라이언트가 생각하는 곳을 듣고 있는지 확인하십시오. 귀하의 PostgreSQL 서버 소켓 디렉토리:

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

에서 또는 이전 PostgreSQL 버전 unix_socket_directory 으로 매개 변수를 변경한 이름입니다., 를 표시하는 서버의 포트(에 적용되는 모두 TCP/IP 와 유닉스 소켓):

 sudo -u postgres psql -c "SHOW port;"

할 수 없는 경우에도와 연결해서 유닉스에서는 사용자 postgres 확인할 수 있습니다 소켓 dir lsof:

 $ sudo lsof -U -a -c postgres COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 6565 postgres 5u unix 0xffff88005a049f80 0t0 183009 /tmp/.s.PGSQL.5432 postgres 6566 postgres 1u unix 0xffff88013bc22d80 0t0 183695 socket postgres 6566 postgres 2u unix 0xffff88013bc22d80 0t0 183695 socket

이 경우에는 첫 번째 라인은 소켓의 위치에 있습니다. 이 서버에는 포트 5432 가있는 소켓 디렉토리/tmp 가 있습니다.,

경우 클라이언트가 보고에서 서로 다른 소켓 디렉토리에,당신은 아마도 노력하고 연결을 통해 유닉스 소켓을 기본 소켓 경로 및/또는 기본 포트 및 libpq 클라이언트 응용 프로그램에 연결된 다른 컴파일에서 유닉스 소켓 경로 및/또는 포트의 실행 PostgreSQL. 대부분의 경우 LD_LIBRARY_PATH 또는/etc/ld.so.conf 에는 PostgreSQL 버전과 함께 제공된 libpq 앞에 다른 libpq 가 있습니다. 이것은 일반적으로별로 중요하지 않으며 소켓 디렉토리 만 재정의 할 수 있습니다.,

을 지정하는 대체 소켓 디렉터리/포트를 연결할 수 있는 포트 번호를 지정합 소켓 dir 호스트로서 매개변수에 연결 옵션은,예를 들어,로 연결하려면 사용자가 밥을 서버에서 듣고/tmp 포트 5433:

 psql -h /tmp -p 5433 -U bob ...

또는 연결 문자열 형태:

 psql "host=/tmp port=5433 user=bob ..."

동일한 작품과 함께 모든 클라이언트가 사용하는 libpq(모든 PostgreSQL 클라이언트 공구,플러스 예 psycopg2 페이지에서 보석 Ruby/레일 PHP postgres 및 PDO,Perl 의 이제 사건을 해결::Pg,etc.)., PgJDBC,py-postgresql 등과 같은 비 libpq 클라이언트에서는 작동하지 않지만 대부분은 unix 소켓을 전혀 지원하지 않습니다. 비 libpq 기반 클라이언트에 대한 클라이언트 설명서를 참조하십시오.

공식 PostgreSQL 다운로드

PostgreSQL 프로젝트 제공하는 공식 목록을 다운 위치를 포함하여,우분투 소프트웨어,저장소에서 다운로드 페이지로 이동합니다. 특히,Ubuntu 사용자가 얻을 수 있는 새로운 PostgreSQL 버전의 사람들보다 패키지에서 자신의 우분투 릴리스 using apt-get via apt.postgresql.org.

에 대한 지원과 서비스의 주위에 PostgreSQL 볼 서비스 및 지원 페이지.,

EnterpriseDB

PostgreSQL Linux 다운로드 페이지에는 EnterpriseDB 가 작성한”그래픽 설치 프로그램”섹션이 포함되어 있습니다. 당신은 설치 프로그램을 다운로드 명령으로 실행할 수 있도록 속성을 변경(그것은있다.extension)을 실행하고”sudo whateveritwas 에서와 같이 명령 프롬프트에서 실행하십시오.실행”.

결국

  • 구성된 DB 서버 인스턴스가 시작하는 서버와 함께
  • pgAdmin III UI 를 클라이언트 응용 프로그램

참고는 설치된 소프트웨어 통합되지 않습니다 우분투 소프트웨어 센터도 있습니다., 결과적으로 우분투에서 보안 업데이트를받지 못할 것입니다. 그러나 설치된 버전은 최신 우분투 버전과 밀접하게 일치합니다.

턴키 리눅

Ubuntu 기반 PostgreSQL 제품은 하나의 가장 쉬운 방법을 실행 PostgreSQL on Ubuntu. 우분투 10.04.1(Lucid LTS)을 기반으로 한 사전 통합 턴키 리눅스 소프트웨어 어플라이언스 제품군의 일부입니다. 피>