Postgres를 처음 설정하려고하는데 데이터베이스를 읽고 만들 수있는 권한이있는 사용자를 만들어야합니다. 그러나 내가 사용할 때 :
createuser username
내 터미널에서 다음 메시지가 나타납니다.
createuser : 데이터베이스 postgres에 연결할 수 없음 : 치명적 : 역할 “tom”이 존재하지 않습니다.
Tom은 내가 지금 로그인 한 Ubuntu 사용자 계정입니다. “postgres”라는 사용자 이름을 생성 한 다음 psql -U psql template1
데이터베이스를 생성하고 Rails 앱에 대한 소유자를 할당 할 수 있도록하려고합니다.
답변
Ubuntu에 대해 언급 했으므로 Ubuntu에서 apt를 통해 PostgreSQL 패키지를 설치했다고 추측하겠습니다.
그렇다면 postgres
PostgreSQL 사용자 계정이 이미 존재하며 peer
.NET Framework에서 유닉스 소켓에 대한 인증을 통해 액세스 할 수 있도록 구성되어 있습니다 pg_hba.conf
. postgres
unix 사용자 로 명령을 실행하면됩니다 . 예 :
sudo -u postgres createuser owning_user
sudo -u postgres createdb -O owning_user dbname
이것은 모두 “Ubuntu PostgreSQL”에 대한 Google의 첫 히트작 인 Ubuntu PostgreSQL 문서에 있으며 수많은 스택 오버플로 질문에서 다룹니다.
(사용중인 OS 및 버전, PostgreSQL 설치 방법 등과 같은 세부 정보를 생략하여이 질문에 답하기가 훨씬 더 어려워졌습니다.)
답변
이것을 실행하십시오 :
sudo -u postgres psql
또는
psql -U postgres
Postgres에 들어가기 위해 터미널에서
주의 : Mac을 사용 중이고 위의 두 명령이 모두 실패한 경우 아래 Mac 관련 섹션으로 이동하십시오.
postgres=#
운영
CREATE USER new_username;
참고 : new_username을 만들려는 사용자로 바꾸십시오 (귀하의 경우 tom이 될 사용자).
postgres=# CREATE USER new_username;
CREATE ROLE
해당 사용자가 DB를 생성 할 수 있도록하려면 역할을 수퍼 유저로 변경해야합니다.
postgres=# ALTER USER new_username SUPERUSER CREATEDB;
ALTER ROLE
확인하기 위해 모든 것이 성공적이었습니다.
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
new_username | Superuser, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
root | Superuser, Create role, Create DB | {}
postgres=#
업데이트 / 수정 (Mac 용) :
최근에 Mac에서 비슷한 오류가 발생했습니다.
psql: FATAL: role "postgres" does not exist
이것은 내 설치가 역할 이름이 로그인 (짧은) 이름과 동일한 데이터베이스 수퍼 유저로 설정 되었기 때문입니다.
그러나 일부 Linux 스크립트는 수퍼 유저가 다음과 같은 전통적인 역할 이름을 가지고 있다고 가정합니다. postgres
이 문제를 어떻게 해결 했습니까?
다음을 homebrew
실행 하여 설치 한 경우 :
/usr/local/opt/postgres/bin/createuser -s postgres
특정 버전의 postgres를 사용하는 경우
10.5
다음을 실행합니다.
/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres
또는:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username
또는:
/usr/local/opt/postgresql@11/bin/createuser -s postgres
postgres.app
Mac 용으로 설치 한 경우 다음을 실행하십시오.
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
추신 : 10.5를 PostgreSQL 버전으로 교체하십시오.
답변
sudo -u postgres createuser -s tom
이것은 관리자가 PostgreSQL 사용자 계정을 생성하지 않은 경우 발생하므로 도움이 될 것입니다. 운영 체제 사용자 이름과 다른 PostgreSQL 사용자 이름이 할당되었을 수도 있습니다.이 경우 -U 스위치를 사용해야합니다.
답변
1- 기본 PostgreSQL 사용자 (postgres)로 로그인
sudo -u postgres -i
2- postgres 사용자로. createuser
명령을 사용하여 새 데이터베이스 사용자 추가
[postgres]$ createuser --interactive
3 번 출구
[postgres]$ exit
답변
귀하의 오류는 공식 문서에 게시됩니다. 이 기사 를 읽을 수 있습니다 .
나는 그 기사에서 당신에 대한 이유 (및 URL 하이퍼 링크)를 복사했습니다.
이는 관리자가 PostgreSQL 사용자 계정을 생성하지 않은 경우에 발생합니다. (PostgreSQL 사용자 계정은 운영 체제 사용자 계정과 다릅니다.) 관리자 인 경우 20 장에서 계정 생성에 대한 도움말을 참조하십시오 . 첫 번째 사용자 계정을 만들려면 PostgreSQL이 설치된 운영 체제 사용자 (일반적으로 postgres)가되어야합니다. 운영 체제 사용자 이름과 다른 PostgreSQL 사용자 이름이 할당되었을 수도 있습니다. 이 경우 -U 스위치를 사용하거나 PGUSER 환경 변수를 설정하여 PostgreSQL 사용자 이름을 지정해야합니다.
목적을 위해 다음을 수행 할 수 있습니다.
1) PostgreSQL 사용자 계정을 만듭니다.
sudo -u postgres createuser tom -d -P
( -P
암호를 설정하는 -d
옵션, 사용자 이름 ‘tom’에 대한 데이터베이스 생성을 허용 하는 옵션. ‘tom’은 운영 체제 사용자 이름입니다. 이렇게하면 PostgreSQL 명령을 sudo
ing 없이 실행할 수 있습니다 .)
2) 이제 createdb
및 기타 PostgreSQL 명령 을 실행할 수 있습니다 .
답변
나도 같은 문제가 있었어, 그냥 이렇게
sudo su-postgres
createuser odoo -U postgres -dRSP #P for password ( odoo 또는 postgres 액세스 권한을 부여 할 사용자 이름 )
답변
Windows에서 사용 :
C:\PostgreSQL\pg10\bin>createuser -U postgres --pwprompt <USER>
--superuser
또는 --createdb
적절하게 추가하십시오 .
추가 옵션 은 https://www.postgresql.org/docs/current/static/app-createuser.html 을 참조 하십시오 .