일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- peer authentication 에러
- 리스트교집합
- list중복제거
- 리스트차집합
- 권한정책
- PostgreSQL
- 두개리스트비교
- hashset
- instance생성
- db
- mybatis
- WordPress
- lightsail
- enumtype
- anymatch메서드
- 지옥같은git
- route53
- ansible
- 널포인터에러
- Spring
- Java
- 리스트비교
- awsconsole
- enum
- Annotation
- 중복제거
- 리스트합집합
- wordpress블로그
- postgresql13
- AWS
- Today
- Total
Anyway
[DB] PostgreSQL Install 및 계정 생성 / 접속(Peer Authentication 에러 해결) 본문
OS : Rhel 8.4
OS 파악 필요 시
cat /etc/os-release
1. PostgreSQL ver13 Install
1-1. PostgreSQL13 Repository 추가
sudo yum install -y https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
1-2. 기본 모듈 비활성화
sudo dnf -qy module disable postgresql
1-3. Install
sudo yum install -y postgresql13 postgresql13-server
1-4. 초기화
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
1-5. 서비스 시작 및 활성화
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
1-6. 버전 확인
psql --version
2. 사용자 계정 생성 및 접속
2-1. 기본 계정으로 접속
접속하려면 먼저 postgres 사용자로 전환 후 psql을 실행한다.
sudo -i -u postgres
psql
2-2. 새 사용자 계정 생성
#비밀번호가 없는 계정 생성 시
CREATE USER <계정명>;
#비밀번호가 있는 사용자 계정 생성 시
CREATE USER <계정명> WITH PASSWORD '<password>';
#superuser권한을 가진 계정 생성 시
CREATE USER <계정명> WITH PASSWORD '<password>' SUPERUSER;
2-3. 사용자 확인
\du
2-4. 새로 만든 계정으로 접속
psql -U <계정명>
접속 시도 하니 > 🫨⚠️ psql: error: FATAL : database “llmops” does not exist 에러 발생
이 에러는 계정만 만들고 접속 시도를 하려고 하니 데이터베이스가 존재하지 않는다는 에러로 PostgreSQL에 접속할 때 기본적으로 사용자가 자신과 동일한 이름의 데이터베이스에 접속하려고 시도하기 때문이다. 현재 계정명만 만들고 그 안에 db를 만들어 놓지 않아서 발생한 것이다.
2-5. 데이터베이스 생성
#기본 계정으로 재접속
sudo -i -u postgres
psql
\l
CREATE DATABASE <new db>;
2-6. 새로 만든 계정으로 재 접속(시스템 계정 말하는 거 아님)
psql -U llmops -d postgres -W
-d 옵션으로 데이터베이스명 지정
psql에 접속할 때 특정 데이터베이스 이름을 명시하지 않으면 기본적으로 사용자 이름과 같은 이름의 데이터베이스에 접속하려고 시도한다. 이 경우 새로운 계정명의 데이터베이스를 만들어 놓지 않으면 위와 같이 db가 존재하지 않는다는 에러가 뜨면서 접속이 불가할 것이다.
그리고 나서 또 나올 수 있는 에러
🫨⚠️ Peer authentication failed for user
PostgreSQL에서 Peer 인증 방식이 사용되고 있음 > 이는 사용자 이름이 시스템 사용자와 일치해야만 접속이 허용되는 방식이기에 위 생성한 계정명과 동일한 시스템 계정으로 접속을 시도해야 한다는 것이다.
시스템 계정 생성 없이 접속 시도를 가능하게 하려면 config 파일 내용을 변경해줘야 한다.
sudo vi var/lib/pgsql/13/data/pg_hba.conf
peer 인증 방식을 md5로 변경
# 기존 (peer 인증)
local all llmops peer
# 수정 후 (md5 비밀번호 인증)
local all llmops md5
재시작(꼭 해줘야 함. 안 그럼 적용 안 됨)
sudo systemctl restart postgresql-13
이렇게 해주면 접속 잘 된다.
'Database' 카테고리의 다른 글
[DB] postgresql Count 함수 사용하기 (0) | 2024.12.19 |
---|---|
[DB] Mybatis에서 if문에 enum 비교값 사용하기 (2) | 2024.12.18 |
[DB] Select문 STRING_AGG() 함수 사용하기 (0) | 2024.10.04 |
[DB/JPA] ORM이란? (0) | 2024.08.22 |