programing

PostgreSQL 오류: 치명적: 역할 "사용자 이름"이 없습니다.

showcode 2023. 5. 25. 22:14
반응형

PostgreSQL 오류: 치명적: 역할 "사용자 이름"이 없습니다.

나는 내 Postgre를 설정하고 있습니다.SQL 9.1.저는 Postgre와 아무것도 할 수 없습니다.SQL: 할 수 없습니다.createdb,못한다createuser모든 작업이 오류 메시지를 반환합니다.

Fatal: role h9uest does not exist

h9uest내 계정 이름이고, 나는sudo apt-get install포스트그레이 계정의 SQL 9.1.
에 대해서도 유사한 오류가 지속됩니다.root계좌.

운영 체제 사용자 사용 postgres데이터베이스 만들기 - 동일한 이름의 운영 체제 사용자에 해당하는 필요한 권한으로 데이터베이스 역할을 설정하지 않은 경우:h9uest귀하의 경우):

sudo -u postgres -i

여기 또는 여기에서 권장되는 대로.

그럼 다시 해보세요.유형exit시스템 사용자로 운영이 완료되면postgres.

또는 단일 명령 실행createuser~하듯이postgres와 함께sudo다른 대답에서 dsrees에 의해 증명된 것처럼.

이 경우 동일한 이름의 데이터베이스 역할과 일치하는 운영 체제 사용자를 사용하여 인증을 통해 액세스할 수 있습니다. postgres데이터베이스 클러스터를 초기화하는 기본 운영 체제 사용자입니다.설명서:

데이터베이스 시스템을 부트스트랩하기 위해 새로 초기화된 시스템에는 항상 하나의 미리 정의된 역할이 포함됩니다.이 역할은 항상 "슈퍼 사용자"이며 기본적으로 실행 시 변경되지 않는 한initdb데이터베이스 클러스터를 초기화한 운영 체제 사용자와 이름이 같습니다.일반적으로 이 역할의 이름이 지정됩니다.postgres더 많은 역할을 만들려면 먼저 이 초기 역할로 연결해야 합니다.

비표준 사용자 이름 또는 운영 체제 사용자가 존재하지 않는 이상한 설정에 대해 들어본 적이 있습니다.거기서 전략을 수정해야 합니다.

데이터베이스 역할 및 클라이언트 인증에 대한 내용은 설명서를 참조하십시오.

많은 다른 사람들의 해결책을 시도했지만 성공하지 못한 후에, 이 대답은 마침내 저에게 도움이 되었습니다.

https://stackoverflow.com/a/16974197/2433309

요컨대, 달리는

sudo -u postgres createuser owning_user

이름이 owning_user인 역할(이 경우 h9uest)을 생성합니다.그런 다음 실행할 수 있습니다.rake db:createPostgres 환경에 들어갈 필요 없이 설정한 계정 이름으로 터미널에서 사용할 수 있습니다.

sudo su - postgres

psql template1

권한을 "슈퍼 사용자"로 사용하여 pgsql에 역할

CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;

그런 다음 사용자 만들기

CREATE USER username; 
eg. CREATE USER demo;

사용자에게 권한 할당

GRANT ROOT TO username;

그런 다음 해당 사용자에 대한 로그인을 활성화하여 다음과 같은 작업을 실행할 수 있습니다. psql template1 $터미널:

ALTER ROLE username WITH LOGIN;

이것은 나에게 도움이 됩니다.

psql -h localhost -U postgres

다을사용포설치스를 사용하여 apt-get사용자 역할 또는 데이터베이스를 만들지 않습니다.

개인 사용자 계정에 대한 슈퍼 사용자 역할 및 데이터베이스를 만드는 방법

sudo -u postgres createuser -s $(whoami); createdb $(whoami)

psql postgres

postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;

Postgres 9.5 버전의 경우 다음 명령을 사용합니다.

psql -h localhost -U postgres

이것이 도움이 되기를 바랍니다.

작업 방법,

  1. vi /etc/postgresql/9.3/main/pg_hba.conf
  2. local all postgres peer여기 피어를 신뢰로 변경합니다.
  3. 다시작시,sudo service postgresql restart

  4. 이제 시도해 보세요.psql -U postgres

도커 컴포지로 건강검진을 했습니다.

healthcheck:
  test: ['CMD-SHELL', 'pg_isready']
  interval: 5s
  timeout: 5s
  retries: 5

사용자도 변경할 수 있는 경우:

healthcheck:
  test: ['CMD-SHELL', 'pg_isready -U postgres'] # <<<---
  interval: 5s
  timeout: 5s
  retries: 5

Windows 사용자의 경우:psql -U postgres

Postgre와 Postgre 사이의 명령줄 됩니다. SQL:postgres=#

루트 사용자 프롬프트가 아닌 로컬 사용자 프롬프트에 다음을 입력합니다.

sudo -u postgres createuser <local username>

그런 다음 로컬 사용자의 암호를 입력합니다.

그런 다음 "역할 'username'이(가) 존재하지 않습니다."를 생성한 이전 명령을 입력합니다.

위의 단계들이 저에게 그 문제를 해결해 주었습니다.그렇지 않으면 위 단계에 대한 터미널 메시지를 보내주십시오.

macOS에 설치했는데 다음 작업을 수행해야 했습니다.

cd /Applications/Postgres.app/Contents/Versions/9.5/bin
createuser -U postgres -s YOURUSERNAME
createdb YOURUSERNAME

출처는 다음과 같습니다. https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641

제 경우 DB 클러스터를 수동으로 생성하여 해결했습니다.

어떤 이유에서인지 postgres를 설치했을 때 "initial DB"가 생성되지 않았습니다.실행하는 것이 저에게 도움이 되었습니다.

이 솔루션은 Postgre에서 제공됩니다.SQL Wiki - 첫 번째 단계:

initdb

일반적으로 OS에 postgres를 설치하면 "초기 DB"가 생성되고 postgres 서버 데몬 실행이 시작됩니다.그렇지 않으면 initdb를 실행해야 합니다.

sudo -u postgres createuser --superuser $USER

sudo -u postgres createdb $USER

이것은 분명히 당신에게 효과가 있을 것입니다.

을 사용하여 덤프 및 --no-owner --no-privileges

예.

- 덤프 -pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump

- 원복 -pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump

도커를 사용하고 공식 문서의 지침을 올바르게 따르는 사용자는 이 문제가 해결되지 않으면 창을 다시 시작하고 다시 시도하십시오.

다음 단계를 수행하면 효과를 볼 수 있습니다.

  1. 려달을 msfconsole
  2. db_dll 유형
  3. 선택한 정보 중에서 다음과 같은 정보를 선택한 경우 몇 가지 정보가 표시됩니다.db_connect user:pass@host:port.../database안 나는데,, ▁the▁sorry▁ination▁the▁with▁included▁the▁inform▁i▁database▁replace▁and▁then▁one▁user▁host▁and다▁it▁the'▁and▁this▁the▁like에 포함된 정보로 대체합니다.database.yml 배치:/usr/share/metasploit-framework/config
  4. 두고 보시지요.백그라운드에서 모델 캐시를 재구성합니다.
  5. 및 콘솔을 시작한 후 &&apt-get upgrade를 합니다.msfconsole: msf>db_status연결되어 있다는 것을 알게 될 것입니다.

다음 단계에 따라 포스트그래스가 작동합니다.

  1. 터미널에서 다음 명령을 사용하여 응용 프로그램 지원 폴더를 찾습니다. /Users/[사용자 이름]/라이브러리/응용 프로그램 지원
  2. 애플리케이션을 삭제하십시오, Postgres.
  3. 앱을 다시 설치하면 제대로 작동할 것입니다.

포트를 5432에서 5433으로 바꾸는 것과 같은 간단한 것이 저에게 효과가 있었습니다.

언급URL : https://stackoverflow.com/questions/11919391/postgresql-error-fatal-role-username-does-not-exist

반응형