Postgres 사용자가 존재하지 않습니까?
저는 방금 Postgres를 설치하고 1-2시간 동안 다양한 구성을 수정하고 있습니다.
포스트그레스 사용자로 변경할 수 없는 상태입니다.
$ su - postgres
합니다.su: unknown login: postgres
$ sudo -u postgres psql
합니다.sudo: unknown user: postgres
이러한 시도는 일반 사용자로 수행됩니다.루트로 시도해도 정확히 같은 결과를 얻을 수 있습니다.저는 OS X에 Homebrew를 통해 Postgres를 설치한 적이 있으며 설명서를 여러 번 읽었습니다.
psql
이름으로 합니다.
psql -U postgres
사용자 Postgres로 합니다.
저는 스도가 필요하지 않은 것 같습니다.
OS X postgres 데이터베이스에 Postgres.app을 사용합니다.설치가 제대로 작동하고 데이터베이스 서버가 제대로 시작되었는지 확인하는 번거로움을 없앴습니다.여기를 확인해 보세요: http://postgresapp.com
편집: @Erwin Brandstetter가 제 주장을 수정한 것에 대한 공로를 인정합니다.
타고psql --help
데이터베이스 이름에 대한 옵션을 설정하지 않은 경우(없이)-d
옵션) 만약 당신이 하지 않았다면, 그것은 당신의 사용자 이름일 것입니다.-U
데이터베이스 사용자 이름도 당신의 사용자 이름 등이 될 것입니다.
지만하에 의해.initdb
(첫 번째 데이터베이스 만들기) 명령에는 데이터베이스 이름과 같은 사용자 이름이 없습니다.이름이 지정된 데이터베이스가 있습니다.postgres
첫 번째 데이터베이스는 데이터 저장 영역이 초기화될 때 항상 initdb 명령에 의해 생성됩니다. 이 데이터베이스를 postgres라고 합니다.
따라서 사용자 이름이 지정된 다른 데이터베이스가 없는 경우 다음 작업을 수행해야 합니다.psql -d postgres
하려면 .psql 명령을 사용하십시오.그리고 그것은 주는 것처럼 보입니다.-d
은 " 기적으로옵션본"입니다.psql postgres
작동하기도 합니다.
사용자 이름과 동일한 다른 데이터베이스 이름을 작성한 경우 다음을 사용하여 수행해야 합니다.createdb
) 그런 다음 명령할 수 있습니다.psql
오직. 그리고 첫 번째 데이터베이스 사용자 이름이 당신의 기계 사용자 이름으로 설정되어 있는 것 같습니다.
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 사용자가 기본 설치에 존재합니다.▁to다'▁be▁note▁▁able▁you▁that없니습수다.su
암호가 없기 때문에 이 계정(루트 제외)으로 이동합니다. sudo -u _postgres
반면에, 잘 작동할 것입니다.
저에게 이것은 psql을 다시 설치하는 macOS의 솔루션이었습니다.
brew install postgres
시작 PostgreSQL 서버
pg_ctl -D /usr/local/var/postgres start
DB 초기화
initdb /usr/local/var/postgres
이 명령이 오류를 발생시키면 이전 데이터베이스 파일을 rm하고 위 명령을 다시 실행합니다.
rm -r /usr/local/var/postgres
새 데이터베이스 만들기
createdb postgres_test
psql -W postegres_test
이 DB에 로그인되고 여기에 로그인할 사용자를 생성할 수 있습니다.
psql -U postgres
db name: postgres & username: postgres의 경우 저에게 잘 작동했습니다.그래서 당신은 sudo를 쓸 필요가 없습니다.
그리고 다른 DB의 경우, 당신은 시도할 수 있습니다.
psql -U yourdb postgres
Postgres 도움말에 나와 있는 대로:
psql [OPTION]... [DBNAME [USERNAME]]
저는 크리샤와 정확히 같은 오류를 받습니다.su - postgres
그리고.sudo -u postgres psql
Daniel M의 대답은 또한 오류를 줍니다.
잘못된 설정 시 출력
하지만 프르바바의 논평에서 대답하세요.
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
항상 암호 요청을 방지하려면 여기에 설명된 것처럼 세 가지 옵션을 선택할 수 있습니다.
여기서의 토론과 답변은 저에게 큰 도움이 되었습니다.
psql: FATAL: 데이터베이스 "<user>"가 존재하지 않습니다.
이를 통해 새 역할을 생성할 수 있습니다. 이름을 지정할 수 있습니다.
sudo adduser <new_user_role>
솔루션은 간단합니다.
루트로 로그인합니다.
이후:
su - postgres
psql
언급URL : https://stackoverflow.com/questions/21122598/postgres-user-does-not-exist
'programing' 카테고리의 다른 글
Git에서 가장 최신 버전으로 돌아가는 방법은 무엇입니까? (0) | 2023.05.01 |
---|---|
Git: 원격 분기를 로컬로 병합합니다. (0) | 2023.05.01 |
호스트 요소에 "클래스"를 추가하는 방법은 무엇입니까? (0) | 2023.05.01 |
다중 행 문자열 리터럴의 구문은 무엇입니까? (0) | 2023.05.01 |
Float에서 날짜 시간 형식을 지정하는 방법 (0) | 2023.05.01 |