Linux에서 PostgreSQL 구성

Bilal Shahid 2023년6월20일
  1. Linux 시스템에서 PostgreSQL의 기본 설정
  2. PostgreSQL Linux에 아직 없는 경우 사용자 이름 만들기
  3. PSQL Shell에서 ROLEDATABASE 생성
  4. PORT CONNECT 도구를 사용하여 데이터베이스에 액세스
  5. Linux에서 PostgreSQL을 구성하는 다양한 방법
Linux에서 PostgreSQL 구성

이 튜토리얼은 Linux에서 PostgreSQL을 설정하는 방법을 알려줍니다. 자세한 설정은 Ubuntu 또는 Fedora, Bodhi, PepperMint, BackBox 등과 같은 다른 Linux 배포에 중점을 둘 것입니다.

Linux 시스템에서 PostgreSQL의 기본 설정

  1. 터미널에서 PostgreSQL을 설치합니다.

Ubuntu, Debian 또는 Mint의 경우:

명령:

sudo apt-get install postgresql

아치 리눅스의 경우:

명령:

sudo pacman -S postgresql

Fedora, Red Hat 등과 같은 YUM 설치의 경우 다음을 수행해야 합니다.

  • 여기에서 CURL 명령에 대한 PostgreSQL 버전 URL을 얻으십시오: URL.
  • URL이 확보되면 이 URLCURL 요청을 발행하여 리포지토리를 다운로드합니다.

명령:

curl -O [url]
  • 그런 다음 RPM을 설치합니다.

명령:

rpm -ivh [rpm file name]

이 배포를 원하는 경우 나중에 패키지를 다운로드할 수도 있습니다.

  1. 사용자 Postgres로 데이터베이스에 연결.

PostgreSQL 설치의 bin 디렉터리에 연결하는 명령을 실행해 보겠습니다.

명령:

cd BINPATH (most probably: /var/lib/postgresql/12/main)

경로 내부에서 SUDO -U 명령을 실행하여 데이터베이스에 연결해 보겠습니다. 다음과 같이 쿼리를 실행합니다.

sudo -u postgres psql template1

TEMPLATE1은 기본 데이터베이스이지만 위 쿼리에서 TEMPLATE1 위치에 정의된 모든 것을 사용할 수 있습니다. 연결되면 이제 지정된 데이터베이스에 들어간 것입니다.

  1. 데이터베이스 POSTGRES의 비밀번호 설정.

세션에 들어가면 다음과 같은 내용이 표시됩니다.

postgres=# or template1=#

이제 데이터베이스 세션에 로그인했음을 의미합니다. 다음과 같이 ALTER 문을 사용하여 루트 데이터베이스 POSTGRES의 암호를 설정해 보겠습니다.

ALTER USER postgres with encrypted password '[YOUR_PASSWORD]';

암호가 변경되면 다음 출력이 반환됩니다.

출력:

ALTER ROLE

\q 명령을 사용하여 세션에서 로그아웃한 다음 다시 로그인하여 원하는 변경 사항을 확인하십시오.

  1. 연결을 위한 PG_HBA.CONF 수정

Linux 내부의 파일을 수정하려면 콘솔 편집기인 VIM을 사용하여 파일을 수정합니다. VIM이 설치되어 있지 않은 경우 아래 명령을 다운로드하여 실행할 수 있습니다.

명령:

sudo apt install VIM;

VIM을 사용하여 디렉토리에서 PG_HBA.CONF 파일을 편집하십시오. MAIN 디렉토리는 CD 명령을 사용하여 액세스할 수 없습니다.

명령:

sudo vim \var\lib\postgresql\12\main\pg_hba.conf

직선이 보이고 내부에 데이터가 없는 경우 파일에 다음 행을 추가하십시오.

local all postgres md5

그런 다음 ESC를 누르고 :wqa를 입력하여 편집기에서 EXIT로 이동합니다.

  1. 데이터베이스 생성 및 Postgres로 로그인

새 데이터베이스를 만들려면 다음 명령을 사용합니다.

sudo -u postgres createdb NEW_DB

이를 확인하려면 아래 명령을 사용하여 비밀번호로 로그인하십시오.

psql - U postgres -W

경우에 따라 POSTGRES에 올바른 암호를 입력한 후에도 다음 오류가 반환될 수 있습니다.

psql: error: FATAL: Peer authentication failed for user 'postgres'

이것은 전적으로 PG_HBA.CONF에서 연결에 대한 PEER 옵션을 변경하지 않았기 때문에 발생합니다.

이는 Linux에서 PostgreSQL 세션을 실행하는 데 필요한 모든 것입니다. 아래에서 설명하는 다른 방법과 방법이 있습니다.

PostgreSQL Linux에 아직 없는 경우 사용자 이름 만들기

일부 버전에서는 다음 명령으로 사용자를 CREATE합니다.

명령:

sudo -u template1 createuser --superuser [user_name]

사용자가 생성되면 먼저 비밀번호 없이 간단하게 로그인할 수 있습니다. 나중에 암호를 설정하려면 ALTER 문을 사용하십시오.

POSTGRES 사용자는 시스템에서 PostgreSQL 설치를 위한 루트 사용자로 작동합니다. 기본 파일에 대한 쓰기 액세스 권한이 있어야 하며 훨씬 더 높은 보안 기능에 사용할 수 있습니다.

PSQL Shell에서 ROLEDATABASE 생성

PSQL 셸에 로그인하면 다음 쿼리를 사용하여 새 데이터베이스 또는 사용자를 CREATE할 수 있습니다.

CREATE ROLE [user_name] LOGIN PASSWORD 'abc123';
CREATE DATABASE [database name] WITH OWNER = [user_name];

PORT CONNECT 도구를 사용하여 데이터베이스에 액세스

다른 시스템의 사용자로 PostgreSQL 세션에 연결하기 위해 활용할 수 있는 또 다른 방법은 다음 명령을 사용하는 것입니다.

$ psql -h [host_name] -d [database_name] -U [_username] -p [port_number]

이것은 다른 사용자를 시스템에 연결하는 데 도움이 됩니다. 이 명령을 사용하여 사용자가 서버에서 호스팅되는 PostgreSQL 세션에서 실행되도록 구성한 다음 쿼리를 실행하고 해당 데이터베이스에서 작업할 수 있습니다.

연결할 USER를 다음과 같이 지정하는 것과 함께 연결할 DATABASE를 지정해야 할 수도 있습니다.

psql -U [user_name] -d [db_name]

Linux에서 PostgreSQL을 구성하는 다양한 방법

구성은 쉽고 효율적이어야 합니다. 때로는 PSQL에 사용자로 연결을 시도하는 동안 항상 PATH를 먼저 언급한 다음 연결을 형성해야 할 수 있습니다.

이것은 다음을 사용하여 간단하게 만들 수 있습니다.

export PATH=$PATH: [our_bin_directory_path]

BIN_DIRECTORY는 대부분 var/lib/postgresql/.. 또는 설치 시 생성되는 유사한 폴더입니다.

PATH 변수가 설정되면 SERVICE가 작동하도록 초기화할 시간입니다. 대부분의 경우 이것은 자동이지만 안전을 위해 다음과 같이 할 수 있습니다.

//initialization
sudo service postgresql-[version_number] initdb

//starting
sudo service postgresql-[version_number] start

FEDORA 또는 YUM 시스템에서 명령은 다음과 같이 실행될 수 있습니다.

sudo systemctl start postgresql-[version_number]
sudo systemctl enable postgresql-[version_number]

Fedora 또는 다른 시스템에 PGADMIN을 설치하여 삶을 더 쉽게 만들 수도 있습니다.

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub