Acabo de instalar postgresql y especifiqué la contraseña x durante la instalación. Cuando trato de hacer createdb
y 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
postgres
usuario. Es elSU
de PostgreSQL, y te abre para ataques de inicio de sesión contra él. Cree otro superusuario y reserve el bloqueadopostgres
para 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.conf
archivo: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.conf
archivo (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
psql
error, 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.conf
debe 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 peer
en 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
postgres
desde 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
postgres
usuario,O,
Nota al margen: el
postgres
usuarioSugiero NO modificar al
postgres
usuario.postgres
. Se supone que tienes root para autenticarte comopostgres
.postgres
que 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)
-s
hace 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 postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
A:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
fuente
postgres
usuario es una mala idea. stackoverflow.com/a/41604969/124486fuente
Probablemente necesite actualizar su
pg_hba.conf
archivo. 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
. Cambieident
atrust
forhost
(ylocal
si 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 psql
recibía el errorsudo: unknown user: postgres
Afortunadamente, hay ejecutables que proporciona postgres.
Luego pude acceder
psql
sin 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.conf
con 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