최근 Raspberry Pi에 Postgresql을 설정한 후 고급 사용자가 아닌 계정을 만들었습니다. 처음에는 설정하기 위해 다음을 입력했습니다.
psql
터미널에서 다음을 실행하십시오.
createuser pi -P --interactive
나는 새로운 역할을 생성하기 위해 데이터베이스 Y를 생성하기 위해 슈퍼유저 Y에 대해 N을 응답합니다.
Create database test;
이제 간단히 psql을 사용하려고 하면
psql
알겠어요
pi@raspberrypi:~ $ psql psql: FATAL: database "pi" does not exist
psql 테스트로 이동하여 거기에 데이터베이스를 생성할 수 있지만 이 동작의 원인이 무엇인지 알고 싶습니다.
터미널이 자동으로 Pi 사용자 자격 증명을 postgresql에 전달합니까, 아니면 시스템의 Pi 계정을 사용하여 로그인합니까?
답변1
psql
Postgresql 서버에 연결하는 데 사용하려는 명령을 표시하지 않았습니다 . 하지만 그 정보가 없어도 무슨 일이 일어나고 있는지 설명할 수 있을 것 같습니다.
명령에 사용자를 지정 하지 않으면 psql
현재 로그인한 사용자 이름을 사용하려고 시도합니다. 데이터베이스를 지정하지 않으면 사용자와 동일한 이름을 가진 데이터베이스를 로드하려고 시도합니다.
나타나는 오류는 database "pi" does not exist
데이터베이스를 로드할 수 없음을 나타냅니다 pi
. 귀하가 게시한 질문에서 사용자 이름 pi
과 데이터베이스 생성을 언급하셨습니다 test
. 다음 명령 test
에 로드 데이터베이스를 지정 해야 합니다 .psql
psql --dbname=test
pi
사용자로 로그인 하지 않은 경우 psql
다음 명령에 사용자 이름을 전달해야 합니다.
psql --username=pi --dbname=test
이 방법이 모두 작동하지 않으면 psql
질문에 명령을 게시해 주시면 무슨 일이 일어나고 있는지 더 잘 알 수 있습니다.
답변2
나는 이 문제를 다음 방법으로 해결했습니다: sudo su postgres
SQL
데이터베이스 파이를 생성합니다.
\큐
출구
그런 다음 pi 계정에서 psql을 사용하면 pi 데이터베이스에 저장됩니다.
그렇지 않으면 psql을 실행할 때 연결할 데이터베이스를 지정해야 합니다. (단지 psql을 실행했다면 데이터베이스 pi(유닉스 사용자 이름)에 연결하려고 한다고 생각합니다.)
pi 계정에서 이 테스트 데이터베이스에 연결하려면 다음을 수행하십시오.
psql --db이름=테스트
이렇게 하면 psql이 pi 데이터베이스에 연결을 시도하지 않습니다.
이것이 누군가에게 도움이 되기를 바랍니다.