programing tip

Postgres 사용자가 존재하지 않습니까?

itbloger 2020. 10. 8. 07:46
반응형

Postgres 사용자가 존재하지 않습니까?


방금 Postgres를 설치하고 1-2 시간 동안 다양한 구성을 수정했습니다.

나는 postgres-user로 변경할 수 없다는 것에 갇혀 있습니다.

$ su - postgres 다음 오류가 발생합니다. su: unknown login: postgres

$ sudo -u postgres psql 다음 오류가 발생합니다. sudo: unknown user: postgres

이러한 시도는 일반 사용자로 수행됩니다. 루트로 시도하면 똑같은 결과가 나타납니다. OS X에서 Homebrew를 통해 postgres를 설치했으며 지침을 여러 번 읽었습니다.


psql: 기본 사용자 이름으로 로그인합니다.

psql -U postgres: postgres 사용자로 로그인합니다.

Sudo는 나에게 필요한 것 같지 않습니다.

OS X postgres 데이터베이스에 Postgres.app을 사용합니다. 설치가 제대로 작동하고 데이터베이스 서버가 제대로 시작되었는지 확인해야하는 번거 로움이 사라졌습니다. 여기에서 확인하세요 : http://postgresapp.com

편집 : 주장 사용을 수정 한 @Erwin Brandstetter에 대한 크레딧.


에 의해 psql --help데이터베이스 이름에 대한 옵션을 설정하지 않았을 때 ( -d옵션 없이 ) 사용자 이름이되고, 그렇지 않으면 -U데이터베이스 사용자 이름도 사용자 이름이됩니다.

그러나 initdb(첫 번째 데이터베이스를 만들기 위해) 명령에 의해 데이터베이스 이름으로 사용자 이름이 없습니다. 라는 데이터베이스가 postgres있습니다. 첫 번째 데이터베이스는 데이터 저장 영역이 초기화 될 때 항상 initdb 명령에 의해 생성됩니다. 이 데이터베이스를 postgres라고합니다.

따라서 사용자 이름이라는 다른 데이터베이스가없는 경우 psql -d postgrespsql 명령이 작동하도록해야합니다. 그리고 그것은 -d기본적으로 옵션을 제공하는 것 같습니다 psql postgres.

사용자 이름과 동일한 다른 데이터베이스 이름을 만든 경우 (로 수행해야 함 createdb) 명령 psql수행 할 수 있습니다 . 그리고 그것은 brew에 의해 컴퓨터 사용자 이름으로 설정된 첫 번째 데이터베이스 사용자 이름 인 것 같습니다.

psql -d <first database name> -U <first database user name>

또는,

psql -d postgres -U <your machine username>
psql -d postgres

기본적으로 작동합니다.


OS X는 시스템 계정 이름 앞에 "_"를 붙이는 경향이 있습니다. 사용중인 OS X의 버전을 말하지 않지만 적어도 10.8 및 10.9에서는 _postgres 사용자가 기본 설치에 존재합니다. 당신이 할 수 없다는 점에 유의 su가 암호를 가지고 있지 않기 때문에, (루트 제외)이 계정. sudo -u _postgres반면에 잘 작동합니다.


여기에있는 토론과 답변은 나에게 큰 도움이되었습니다.

psql : FATAL : ""데이터베이스가 없습니다.


psql -U postgres

db 이름 : postgres 및 사용자 이름 : postgres의 경우 잘 작동했습니다. 따라서 sudo를 작성할 필요가 없습니다.

그리고 다른 db의 경우 시도해 볼 수 있습니다.

psql -U yourdb postgres

Postgres 도움말에서 제공되는대로 :

psql [OPTION]... [DBNAME [USERNAME]]

내가 가진 kryshah와 똑같은 오류를 얻을 수 su - postgressudo -u postgres psql. DanielM의 대답은 오류도 제공합니다.

설정이 잘못되었을 때 출력

그러나 przbabu의 의견에서 대답하십시오.

masi$ psql
psql: FATAL:  database "masi" does not exist
masi$ psql -U postgres
psql: FATAL:  role "postgres" does not exist
masi$ psql postgres
psql (9.4.1)
Type "help" for help.

이 문제의 일부는 OSX의 소유자 설정에있을 수 있습니다.

masi$ ls -al /Users/
total 0
drwxr-xr-x   7 root      admin  238 Jul  3 09:50 .
drwxr-xr-x  37 root      wheel 1326 Jul  2 19:02 ..
-rw-r--r--   1 root      wheel    0 Sep 10  2014 .localized
drwxrwxrwt   7 root      wheel  238 Apr  9 19:49 Shared
drwxr-xr-x   2 root      admin   68 Jul  3 09:50 postgres
drwxr-xr-x+ 71 masi      staff 2414 Jul  3 09:50 masi

하지만 일이 sudo chown -R postgres:staff /Users/postgres있습니다 chown: invalid user: ‘postgres:staff’.

요컨대 이것은 문제의 해결책이 아닙니다. postgres 설치에서 제공하는 도구를 사용하여 사용자 및 데이터베이스를 만듭니다.

올바른 설정 및 출력을 얻으려면

postgres 설치 후 데이터베이스 시스템에 새 사용자를 추가하는 특정 명령이 있습니다. initdb 후 여기에 설명 된대로 다음을 실행합니다.

createuser --pwprompt postgres
createdb -Opostgres -Eutf8 masi_development
psql -U postgres -W masi_development

To avoid the password request all the time, you have three choices as described here.


The solution is simple:
log in as root
and after:

su - postgres

psql

참고URL : https://stackoverflow.com/questions/21122598/postgres-user-does-not-exist

반응형