Createuser: 데이터베이스 postgres에 연결할 수 없음: FATAL: 역할 "tom"이 존재하지 않습니다.
처음으로 Postgres를 설정하려고 하는데 데이터베이스를 읽고 작성할 권한이 있는 사용자를 만들어야 합니다.그러나 사용하는 경우:
createuser username
단말기에 다음 메시지가 표시됩니다.
createuser: 데이터베이스 postgres에 연결할 수 없음: FATAL: 역할 "tom"이 존재하지 않습니다.
Tom은 제가 지금 로그인하고 있는 Ubuntu 사용자 계정입니다.는 " 이름을 "postgres"를 하려고 합니다.psql -U psql template1데이터베이스를 만들고 Rails 앱의 소유자를 지정할 수 있습니다.
Ubuntu를 언급하셨으니 Postgre를 설치하신 것 같습니다.Ubuntu에서 apt까지 SQL 패키지.
그다면렇,면▁the다▁if,postgres 하며 SQL을 통해 수 되어 있습니다.peer의 pg_hba.conf를 실행할 수 있습니다.postgres 사용자:unix user):
sudo -u postgres createuser owning_user
sudo -u postgres createdb -O owning_user dbname
이 모든 것은 Ubuntu Postgre에 있습니다."Ubuntu PostgreSQL"의 첫 번째 Google 히트작인 SQL 문서는 수많은 스택 오버플로 질문에서 다룹니다.
현재 사용 중인 OS 및 버전, Postgre 설치 방법 등의 세부 정보를 생략함으로써 이 질문에 대한 답변을 훨씬 어렵게 만들었습니다.SQL 등)
실행:
sudo -u postgres psql
OR
psql -U postgres
당신의 단말기에서 우편물로 들어가기 위해.
NB: Mac에서 위의 두 명령이 모두 실패한 경우 아래의 Mac 관련 섹션으로 이동합니다.
postgres=#
달려.
CREATE USER new_username;
참고: new_username을 생성할 사용자(tom)로 대체합니다.
postgres=# CREATE USER new_username;
CREATE ROLE
해당 사용자가 DB를 작성할 수 있도록 하려면 역할을 superuser로 변경해야 합니다.
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
포스트그레스의 특정 버전을 사용하는 경우 다음과 같이 말합니다.
10.5그런 다음 실행:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s postgres
OR:
/usr/local/Cellar/postgresql/10.5/bin/createuser -s new_username
OR:
/usr/local/opt/postgresql@11/bin/createuser -s postgres
를설한경우와 )
postgres.appMac 실행의 경우:
/Applications/Postgres.app/Contents/Versions/10.5/bin/createuser -s postgres
추신: 10.5를 Postgre로 교체합니다.SQL 버전
sudo -u postgres createuser -s tom
관리자가 Postgre를 작성하지 않은 경우 이 작업이 발생하므로 도움이 됩니다.SQL 사용자 계정입니다.또한 당신에게 포스트그레가 할당되었을 수도 있습니다.운영 체제 사용자 이름과 다른 SQL 사용자 이름. 이 경우 -U 스위치를 사용해야 합니다.
당신의 오류는 공식 문서에 게시되어 있습니다.당신은 이 기사를 읽을 수 있습니다.
저는 그 기사에서 당신에 대한 이유를 복사했습니다(그리고 URL을 하이퍼링크했습니다).
관리자가 Postgre를 만들지 않은 경우 이 문제가 발생합니다.SQL 사용자 계정입니다. (Postgre)SQL 사용자 계정은 운영 체제 사용자 계정과 다릅니다.)관리자인 경우 계정 생성에 대한 도움말을 보려면 20장을 참조하십시오.Postgre가 사용하는 운영 체제 사용자가 되어야 합니다.첫 번째 사용자 계정을 생성하기 위해 SQL이 설치되었습니다(일반적으로 postgres).또한 당신에게 포스트그레가 할당되었을 수도 있습니다.운영 체제 사용자 이름과 다른 SQL 사용자 이름. 이 경우 -U 스위치를 사용하거나 PGUSER 환경 변수를 설정하여 Postgre를 지정해야 합니다.SQL 사용자 이름
사용자의 목적에 맞게 다음을 수행할 수 있습니다.
Postgre 작성SQL 사용자 계정:
sudo -u postgres createuser tom -d -P
(그)-P; 암를설는옵션하정호;-d사용자 이름 'tom'에 대한 데이터베이스 생성을 허용하는 옵션입니다. 사용자 이름입니다 'tom'은 사용자 이름입니다.그런 식으로 Postgre를 실행할 수 있습니다.을 사용하지 명령어sudoing.
은 이실행수다있니를 할 수 .createdb PostgreSQL 명령입니다.
1 - 기본 Postgre로 로그인합니다.SQL 사용자(포스트그레스)
sudo -u postgres -i
2 - 포스트그레스 사용자로서. 새데이사추가를 하여 새 추가createuser
[postgres]$ createuser --interactive
3자리의
[postgres]$ exit
인증 방법(ident)을 변경하지 않고 pg_hba.conf로 혼란을 일으키려면 다음을 사용합니다.
기본 사용자로 처음 로그인
sudo su - postgres
그런 다음 psql에 액세스하고 로그인한 사용자와 동일한 이름의 사용자를 만듭니다.
postgres=# CREATE USER userOS WITH PASSWORD 'garbage' CREATEDB;
해당 역할을 사용하여 사용자를 확인할 수 있습니다.
postgres=# \du
그런 다음 데이터베이스를 만들고 확인할 수 있습니다.
psql -d dbName
\l
\q
저도 같은 문제가 있었어요, 그냥 이렇게 해요.
sudosu - 우편물
암호용 user odoo -U postgres -dRSP #P 생성(postgres 액세스 권한을 부여하려는 odoo 또는 사용자 이름)
Windows에서 다음을 사용
C:\PostgreSQL\pg10\bin>createuser -U postgres --pwprompt <USER>
더하다--superuser또는--createdb적당하게
추가 옵션은 https://www.postgresql.org/docs/current/static/app-createuser.html 을 참조하십시오.
Linux의 경우 SUPERUSER를 활성화하여 다음과 같은 데이터베이스를 만들 수 있습니다.
터미널/쉘로 이동
다음을 사용하여 내부 게시자 입력
sudo -u postgres -i
이제 당신의 단말기는 "postgres@anish-Latitude-E7450:~$"와 같을 것입니다.
- 다음을 사용하여 postgres 터미널 입력
psql
이제 단말기가 "postgres=#"처럼 됩니다.
- 를 입력하십시오.
alter user [postgres_user_name] createdb;
이제 사용자는 DB를 작성할 수 있습니다.
\q'를 사용하여 psql 종료
다음을 사용하여 포스트그레스 로그아웃
exit
이것이 도움이 되길 바랍니다.
먼저 initdb를 실행해야 합니다.데이터베이스 클러스터와 초기 설정을 만듭니다.
postgresql을 처음으로 구성하는 방법을 참조하십시오.및 http://www.postgresql.org/docs/8.4/static/app-initdb.html .
언급URL : https://stackoverflow.com/questions/16973018/createuser-could-not-connect-to-database-postgres-fatal-role-tom-does-not-e
'programing' 카테고리의 다른 글
| SQL Server 데이터베이스에서 문자열을 검색하려면 어떻게 해야 합니까? (0) | 2023.05.09 |
|---|---|
| Git에서 루트 커밋을 편집하시겠습니까? (0) | 2023.05.09 |
| 파이썬에서 __weakref_가 정확히 무엇입니까? (0) | 2023.05.09 |
| jQuery에서 가장 빠른 어린이() 또는 찾기()는 무엇입니까? (0) | 2023.05.09 |
| 어떤 Git 분기 모델이 귀사에 적합합니까? (0) | 2023.05.09 |