-
맥 m1에서 PostgreSQL 설치 및 실행하기Database/PostgreSQL 2023. 8. 29. 19:15SMALL
맥 m1에서 PostgreSQL 설치 중 만난 오류
Django 프로젝트를 진행하던 중, Django와 가장 호환성이 좋은 데이터베이스인 PostgreSQL을 사용해보기로 했다.
그래서 먼저 로컬 환경에 PostgreSQL을 설치하려고 했는데, 설치부터 에러가 발생해서 해당 부분을 정리해보았다.
우선 내가 접한 에러는 아래와 같다.
postgresql을 설치한 다음 데이터베이스에 접속하려고 하면
psql postgres Password for user : psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: password authentication failed for user ""
위와 같은 에러가 뜨면서 데이터베이스에 접속 자체가 되지 않았다.
설치 이후 초기 실행하는 부분이 macOS와 windows가 다른 것인지 m1 칩인 맥북이 문제인 것인지 정확히 알 순 없었지만 해결 방법을 찾았기 때문에 공유해보려 한다.
1. PostgreSQL이 이미 설치되어 있는 지 확인하기
공식 사이트에서 dmg 파일로 다운받았든 brew로 설치했든 우선 설치되어있는 프로그램은 지우는 게 낫다.
(데이터베이스를 이미 사용중이라면 지우면 안 되겠지만 설치 관련 글이기 때문에 처음부터 설치하는 과정을 기술할 것이다.)
$ postgres --version
이 명령어를 입력했을 때, 설치가 되어있지 않고
"zsh: command not found: postgres" 등의 내용이 나온다면 설치가 되어있지 않은 상태이다.
아래의 2번으로 넘어가면 된다.
만약
"postgres (PostgreSQL) 14.9 (Homebrew)" 등의 내용이 나오면 이미 설치되어 있는 것이니
$ brew uninstall postgresql
위와 같은 명령어로 삭제해준다.
2. brew로 postgresql 설치하기
글 작성일 기준 PostgreSQL의 LTS 버전은 15이기 때문에 15버전으로 설치해준다.
$ brew install postgresql@15
위 명령어로 오류 없이 설치가 완료되었다면, 터미널 내의 경로를 설정해주어야 한다.
설치 이후 터미널에 해당 내용이 나오긴 하지만 추가로 작성해보면,
$ initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@15 $ echo 'export PATH="/opt/homebrew/opt/postgresql@15/bin:$PATH"' >> ~/.zshrc $ export LDFLAGS="-L/opt/homebrew/opt/postgresql@15/lib" $ export CPPFLAGS="-I/opt/homebrew/opt/postgresql@15/include" $ export PKG_CONFIG_PATH="/opt/homebrew/opt/postgresql@15/lib/pkgconfig"
순서대로 경로를 설정해주었으면 PostgreSQL을 실행시켜줘야 한다. (실행 방법이 중요하니 아래 3번대로 진행해야한다..!!)
3. brew로 데이터베이스 실행하기 (* 이 부분으로 인해 가장 많은 오류가 발생하는 것 같다..!!)
PostgreSQL 설치 문서들을 찾아보면 대부분의 글에서 설치 이후 디비 실행을
$ brew services start postgresql@15 # 단순 실행 $ LC_ALL="C" /opt/homebrew/opt/postgresql@15/bin/postgres -D /opt/homebrew/var/postgresql@15 # 백그라운드에서 계속 실행
이 두 가지 명령어로 실행하라고 나와있다.
만약 여기서 아무런 문제없이 데이터베이스가 실행되었다 하더라도 이후
$ psql postgres
이렇게 데이터베이스에 접속하려면 맨 위에서 언급한 것과 같은 오류가 발생하는 것이다.
이 두 가지를 명령어를 통해서 디비를 실행할 경우 반복적인 오류가 반복되어서 삭제 및 재설치를 몇 시간 동안 반복하고 다양한 문헌을 찾아본 결과, 데이터베이스 실행부분에서 아래의 명령어를 이용하니 정상적으로 동작하는 것을 확인햇다.
$ pg_ctl -D /opt/homebrew/var/postgresql@15 start
이 명령어로 데이터베이스를 실행해준 뒤,
$ psql postgres
이 명령어로 다시 접속해보면, 정상적으로 데이터베이스에 접속이 되고 이후 유저 생성 및 설정, 데이터베이스 생성 등의 작업을 해주면 오류없이 PostgreSQL 초기 세팅을 마칠 수 있다.
[참고 문헌]
1. https://gist.github.com/phortuin/2fe698b6c741fd84357cec84219c6667
LIST댓글