[PostgreSQL] Ubuntu 22.04 + PostgreSQL + Pgvector 세팅 및 사용 방법 정리

kk21·2025년 7월 30일
0

우분투 서버 구축

목록 보기
17/19

PostgreSQL 사용법

위 글에서 .. postgresql에 처음 입문하고 쓰다가
맥북에서 쓰기 싫어서 큰 맘 먹고 맥미니 밀고 다시 세팅했다 ^.^

맥미니 세팅은 생략하고 postgreSQL 세팅법만 정리~


설치 가능 여부 확인

apt show postgresql

apt 버전 업데이트

sudo apt-get update

postgresql-17 설치 시도

sudo apt-get -y install postgresql-17

17 버전은 바로 설치하면 오류가 뜹니다 ...

패키지가 없어서 ..

공식 문서를 찾아보니 따라 할 수 있게 정리되어 있음


Ubuntu postgresql 특정 버전 설치

저장소 구성

sudo apt install -y postgresql-common

대충 어디에 postgresql-common을 설치..

sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

.sh 파일 실행

sudo apt install curl ca-certificates

저장소 서명 키 가져오기

sudo install -d /usr/share/postgresql-common/pgdg 

가져오기2

sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc 

가져오기 3

. /etc/os-release 

저장소 구성 파일 생성1

sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list" 

저장소 구성 파일 생성2

sudo apt update 

패키지 업데이트

sudo apt -y install postgresql-17

postgresql 버전 17 설치

psql --version


설치된 버전 확인


접속 오류 해결 방법 (error: connection to servre on socket)

접속을 하려고 했는데 접속이 안 된다 .... 당황 ...

그래서 포트가 열려있는지 먼저 확인하기 위해 .. net-tools 설치하기..

sudo apt install net-tools

그리고 확인하기 ..

netstat  -ntlp | grep 5432

그런데 5432 기본 포트가 잘 살아있다

그래서 이번에는 소켓 파일이 잘 있는지 확인해보기 ..

ls -l /var/run/postgresql/.s.PGSQL.5432

근데 소켓파일도 잘 있다...

왜 그럴까 한참 고민하다가 괜히 restart 해보기 ..

근데 전혀 문제가 없는데 ..... ㅜ ㅜ

sudo -u postgres psql

sudo는 잘 안 쓰고 싶었는데.. 어쩔 수 없다라는 마음으로 냅다 sudo 갈겼더니 성공 ... ^.^

역시 Sudo는 .... .....

근데 왜 되는지는 모르는데
sudo로 super로 설치했기 떄문에 아마 sudo 권한만 접속이 가능하다고 예측 중 ...

하 어려워 ~

sudo로 써도 되긴 하지만, 괜히 쓰기 싫어서 계정을 새로 만들었다.

psql 계정 만들기 (접속 오류 해결)

sudo -u postgres createuser [계정이름] --superuser

그리고 새로 만든 계정으로 접속을 해보려고 했는데 ..

ㅎ 또 같은 오류가 ㅎ

..

그래서 계정 생성이 안 된건가 싶어서 다른 방식으로 계정을 생성보았다

sudo -u postgres createuser --interactive
Enter name of role to add: [계정이름 입력]
Shall the new role be a superuser? (y/n) y [슈퍼 유저 권한을 주겠냐는 의미이므로 필요하면 Y)

근데 이미 있다고 한다 ..
당황해서 비밀번호 세팅을 안 해서 그런가 싶다는 생각에
sudo로 들어가서 비번을 바꿔보기로

alter user skala password '비밀번호';

이렇게 바꾸면 된다

다시 새로 만든 계정으로 접속을 시도했는데 아직도 안 들어가짐 ㅎ

그래서 주소를 지정해보기로 했다 ..

psql -U [계정이름] -d postgres -h 127.0.0.1

오예 !!!!
로컬 호스트를 지정해주니깐 된다 ㅎ
쉽지 않다 .......
그치만 성공해서 뿌듯


PostgreSQL / psql 기본 사용법

아래는 접속하고 생성하는 기본 예제 !!

PostgreSQL 접속

psql -U [계정명] -d [DB명]

DB 생성

create database lms;

DB 삭제

drop database lms;

DB list 확인

\list

DB 선택

\c [DB 이름]

스키마 생성

CREATE SCHEMA IF NOT EXISTS [스키마이름];

스키마 확인

CREATE SCHEMA IF NOT EXISTS [스키마이름];

테이블 생성

CREATE TABLE IF NOT EXISTS [스키마].[테이블명] (
  [PK이름] SERIAL PRIMARY KEY,
  [속성명] [타입] NOT NULL,
  [속성명] [타입]
);


pgvector 설치

psql 확장 패키지 설치

sudo apt install postgresql-server-dev-all

pgvector 확장 설치

sudo apt install postgresql-[버전숫자]-pgvector

pgvector Extension 설치

먼저 sudo 권한으로 접속

sudo -u postgres psql

익스텐션 설정

CREATE EXTENSION IF NOT EXISTS vector;

설정을 했는데 이미 있다고 한다 ..

Pgvector extension 설치 확인

SELECT * FROM pg_available_extensions WHERE name = 'vector';

그래서 확인해보니 이미 있네 ^.^ 머쓱..

특정 유저로 하고 싶으면 특정 유저로 접속해서 한 번 더 익스텐션 설정 해줘야 됨


특정 유저에서 만약 Extension 설정하고 성공하면 이렇게 뜸


Pgcrypto 설치

vector 저장 테이블을 위한 ppcrypto 설치

CREATE EXTENSION IF NOT EXISTS pgcrypto;

vector 저장을 위한 vector store 생성

CREATE TABLE IF NOT EXISTS public.vector_store (
  embedding_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  embedding vector(1536),
  created_at TIMESTAMPTZ DEFAULT now()
);

이렇게 기본적인 세팅 및 테스트는 끝 !

profile
LLM Engineer의 성장 일기 ing. . . ✨

0개의 댓글