Acabo de instalar postgresql y especifiqué la contraseña x durante la instalación. Cuando trato de hacer createdby especificar cualquier contraseña me sale el mensaje:
createdb: no se pudo conectar a la base de datos postgres: FATAL: la autenticación de contraseña falló para el usuario
Lo mismo para createuser.
¿Cómo debo comenzar? ¿Puedo agregarme como usuario a la base de datos?
linux
database
postgresql
configuration
Rohit Banga
fuente
fuente

postgresusuario. Es elSUde PostgreSQL, y te abre para ataques de inicio de sesión contra él. Cree otro superusuario y reserve el bloqueadopostgrespara administradores de UNIX con root.Respuestas:
Las otras respuestas no fueron completamente satisfactorias para mí. Esto es lo que funcionó para postgresql-9.1 en Xubuntu 12.04.1 LTS.
Conéctese a la base de datos predeterminada con el usuario postgres:
Establezca la contraseña para el usuario postgres, luego salga de psql (Ctrl-D):
Edite el
pg_hba.confarchivo:y cambie "peer" a "md5" en la línea relativa a postgres:
Para saber qué versión de postgresql está ejecutando, busque la carpeta de versión en
/etc/postgresql. Además, puede usar Nano u otro editor en lugar de VIM.Reinicie la base de datos:
(Aquí puedes comprobar si funcionó
psql -U postgres).Cree un usuario que tenga el mismo nombre que usted (para encontrarlo, puede escribir
whoami):Las opciones le indican a postgresql que cree un usuario que pueda iniciar sesión, crear bases de datos, crear nuevas funciones, que sea un superusuario y que tenga una contraseña cifrada. Los realmente importantes son -P -E, para que se le pida que escriba la contraseña que se cifrará, y -d para que pueda hacer un
createdb.Cuidado con las contraseñas : primero le pedirá dos veces la nueva contraseña (para el nuevo usuario), repetida, y luego una vez la contraseña de postgres (la especificada en el paso 2).
Nuevamente, edite el
pg_hba.confarchivo (vea el paso 3 arriba) y cambie "par" a "md5" en la línea que concierne a "todos" otros usuarios:Reinicie (como en el paso 4) y verifique que puede iniciar sesión sin -U postgres:
Tenga en cuenta que si hace un mero
psqlerror, ya que intentará conectarlo a una base de datos predeterminada que tenga el mismo nombre que usted (es decirwhoami). template1 es la base de datos de administración que está aquí desde el principio.Ahora
createdb <dbname>debería funcionar.fuente
pg_hba.confdebe ser la primera línea, de lo contrario podría ignorarse debido a otras reglas (pgsql 9.3.5 en F21). Me tomó algo de tiempo darme cuenta de esto, que las líneas de comentarios ya comentadas para usuarios de postgresql no lo harán simplemente.local all all peeren el punto 3 al que ahora cambiémd5. ¿De acuerdo?En Linux, PostgresQL generalmente se configura para permitir que el usuario root inicie sesión como superusuario de postgres
postgresdesde el shell (consola o ssh).Entonces simplemente crearía una nueva base de datos como de costumbre:
Esto debería funcionar sin tocar
pg_hba.conf. Si desea poder hacer esto usando alguna herramienta GUI a través de la red, entonces necesitaría meterse con élpg_hba.conf.fuente
psql: FATAL: Peer authentication failed for user "postgres"incluso con sudo.psql -d mydatatabase -U myuser.Esta es mi solución:
fuente
sudo bash.Hay dos métodos que puedes usar. Ambos requieren crear un usuario y una base de datos.
Usando createuser y createdb ,
Usar los comandos de administración de SQL y conectarse con una contraseña a través de TCP
Y luego en el shell psql
Entonces puedes iniciar sesión,
Si no conoce el puerto, siempre puede obtenerlo ejecutando lo siguiente, como
postgresusuario,O,
Nota al margen: el
postgresusuarioSugiero NO modificar al
postgresusuario.postgres. Se supone que tienes root para autenticarte comopostgres.postgresque es el equivalente de PostgreSQL de SQL ServerSA, debe tener acceso de escritura a los archivos de datos subyacentes. Y eso significa que normalmente podrías causar estragos de todos modos.fuente
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)-shace que el usuario sea un superusuario.EDITAR: Advertencia: Por favor, lea la respuesta publicada por Evan Carroll . Parece que esta solución no es segura y no se recomienda.
Esto funcionó para mí en la instalación estándar de Ubuntu 14.04 de 64 bits .
Seguí las instrucciones, con pequeñas modificaciones, que encontré en http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html
sudo apt-get install postgresqlsudo –u postgres psql postgres\password postgres\q#Database administrative login by Unix domain socket local all postgres peerA:
#Database administrative login by Unix domain socket local all postgres md5sudo service postgresql restartsudo –u postgres createdb mytestdbpsql –U postgres –W\lfuente
postgresusuario es una mala idea. stackoverflow.com/a/41604969/124486fuente
Probablemente necesite actualizar su
pg_hba.confarchivo. Este archivo controla qué usuarios pueden iniciar sesión desde qué direcciones IP. Creo que el usuario de postgres está bastante bloqueado por defecto.fuente
/var/lib/pgsql/data/pg_hba.conf. Cambieidentatrustforhost(ylocalsi está usando ssh).Si está ejecutando macOS como yo, es posible que no tenga el usuario de postgres.
Cuando trato de correr
sudo -u postgres psqlrecibía el errorsudo: unknown user: postgresAfortunadamente, hay ejecutables que proporciona postgres.
Luego pude acceder
psqlsin problemas.Si está creando una nueva instancia de Postgres desde cero, estos son los pasos que tomé. Utilicé un puerto no predeterminado para poder ejecutar dos instancias.
Luego edité
/var/postgres/var-10-local/postgresql.confcon mi puerto preferido, 5433.¡Hecho!
fuente
En MacOS, seguí los pasos a continuación para que funcione.
Por primera vez, después de la instalación, obtenga el nombre de usuario del sistema.
Ahora que ha iniciado sesión en el sistema y puede crear la base de datos.
fuente
Simplemente busque el directorio de su instalación y ejecute este archivo "pg_env.bat", así que luego vaya a la carpeta bin y ejecute pgAdmin.exe. ¡Esto debe funcionar sin duda!
fuente