No meu sistema, whoami
retorna Dan
. Eu corro initdb
com o --username=PgUser
argumento. Então, como usuário do sistema operacional Dan
, executo pg_ctl start
no cluster recém-inicializado e ele fornece esta saída:
LOG: database system was shut down at 2013-06-13 00:54:33 UTC
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
FATAL: role "Dan" does not exist
done
server started
O servidor parece ter iniciado normalmente. Acredito que o erro ocorra porque ele deseja que eu execute pg_ctl
como o usuário do sistema operacional chamado PgUser
. O que eu quero saber é:
- Essa crença é correta?
- Existe uma maneira de especificar o usuário como
PgUser
sem usarsu
? Eu preferiria não criar um novo usuário do sistema operacional e gostaria de usar um usuário do PostgreSQL com um nome de usuário diferente (estou fazendo algumas refatorações de código que tornam isso mais conveniente). - A instância que iniciei está danificada de alguma forma porque a iniciei como usuário do sistema operacional
Dan
?
Isso acontece quando você roda
pg_ctl start
com a-w
opção (aguardar), pois ele vai tentar uma conexão de teste com um usuário que não existe (no seu caso). Mas isso não é realmente um problema (exceto pela mensagem de erro confusa), porque isso prova que o servidor está ativo.