Acabo de instalar Postgres y he estado jugando con él y con varias configuraciones durante 1-2 horas.
Estoy atascado al no poder cambiar al usuario de postgres
$ su - postgres
produce el siguiente error: su: unknown login: postgres
$ sudo -u postgres psql
produce el siguiente error: sudo: unknown user: postgres
Estos intentos se realizan como usuario normal. Probarlos como root tiene exactamente los mismos resultados. He instalado Postgres a través de Homebrew en OS X, y he leído las instrucciones varias veces.
macos
postgresql
krystah
fuente
fuente
postgres
usuario adecuado .postgres_
lugar. Tenga en cuenta el subrayado final. Además, ¿está seguro de que usted (o el instalador) realmente creó la instancia de PostgreSQL e inició la base de datos?postgres
usuario. Resolvió el problema después de instalar elpostgresql-server
paquete.Respuestas:
psql
: Inicia sesión con mi nombre de usuario predeterminadopsql -U postgres
: Me registra como usuario de postgresSudo no parece ser necesario para mí.
Utilizo Postgres.app para mi base de datos postgres de OS X. Eliminó el dolor de cabeza de asegurarse de que la instalación funcionara y el servidor de base de datos se iniciara correctamente. Compruébalo aquí: http://postgresapp.com
Editar: crédito a @Erwin Brandstetter por corregir mi uso de los argumentos.
fuente
psql postgres
ypsql -d postgres
.Por
psql --help
, cuando no configuró opciones para el nombre de la base de datos (sin-d
opción), sería su nombre de usuario, si no lo hizo-U
, el nombre de usuario de la base de datos también sería su nombre de usuario, etc.Pero por
initdb
el comando (para crear la primera base de datos) no tiene su nombre de usuario como cualquier nombre de base de datos. Tiene una base de datos llamadapostgres
. La primera base de datos siempre la crea el comando initdb cuando se inicializa el área de almacenamiento de datos. Esta base de datos se llama postgres.Entonces, si no tiene otra base de datos llamada su nombre de usuario, debe hacerlo
psql -d postgres
para que el comando psql funcione. Y parece que da-d
opción por defecto,psql postgres
también funciona.Si ha creado otro nombre de base de datos igual al de su nombre de usuario, (debe hacerlo
createdb
), entoncespsql
solo puede ordenar . Y parece que el primer nombre de usuario de la base de datos se establece como el nombre de usuario de su máquina por brebaje.o,
funcionaría por defecto.
fuente
OS X tiende a prefijar los nombres de las cuentas del sistema con "_"; no dice qué versión de OS X está utilizando, pero al menos en 10.8 y 10.9 el usuario _postgres existe en una instalación predeterminada. Tenga en cuenta que no podrá acceder
su
a esta cuenta (excepto como root), ya que no tiene contraseña.sudo -u _postgres
, por otro lado, debería funcionar bien.fuente
la discusión y la respuesta aquí fueron de gran ayuda para mí:
psql: FATAL: la base de datos "<usuario>" no existe
fuente
Funcionó bien para mí en el caso de nombre de base de datos: postgres y nombre de usuario: postgres. Entonces no es necesario escribir sudo.
Y en el caso de otro db, puede intentar
Como se proporciona en la ayuda de Postgres:
fuente
$ psql -U postgres
genera salidapsql: FATAL: role "postgres" does not exist
, peropsql postgres
funciona.Recibo exactamente los mismos errores que kryshah con
su - postgres
ysudo -u postgres psql
. La respuesta de DanielM también da errores.Salidas cuando la configuración es incorrecta
Sin embargo, responda del comentario de 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.
Creo que parte de este problema puede estar en la configuración del propietario en 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
pero hacer
sudo chown -R postgres:staff /Users/postgres
dachown: invalid user: ‘postgres:staff’
.En resumen, esta no es la solución al problema. Utilice las herramientas proporcionadas por la instalación de postgres para crear un usuario y una base de datos.
Para obtener la configuración y los resultados correctos
Hay comandos específicos después de la instalación de Postgres para agregar un nuevo usuario al sistema de base de datos. Después de initdb, ejecute lo siguiente como se describe aquí
createuser --pwprompt postgres createdb -Opostgres -Eutf8 masi_development psql -U postgres -W masi_development
Para evitar la solicitud de contraseña todo el tiempo, tiene tres opciones como se describe aquí .
fuente
Para mí esta fue la solución en macOS Vuelva a instalar el psql
brew install postgres
Inicie el servidor PostgreSQL
pg_ctl -D /usr/local/var/postgres start
Inicializar DB
Si este comando arroja un error, rm el archivo de base de datos anterior y vuelva a ejecutar el comando anterior
Crea una nueva base de datos
Iniciará sesión en esta base de datos y puede crear un usuario aquí para iniciar sesión
fuente
La solución es simple:
inicie sesión como root
y después:
fuente