Je viens d'installer postgresql et j'ai spécifié le mot de passe x lors de l'installation. Lorsque j'essaie de faire createdb
et de spécifier un mot de passe, je reçois le message:
createdb: impossible de se connecter à la base de données postgres: FATAL: échec de l'authentification par mot de passe pour l'utilisateur
Pareil pour createuser
.
Comment dois-je commencer? Puis-je m'ajouter en tant qu'utilisateur à la base de données?
linux
database
postgresql
configuration
Rohit Banga
la source
la source
postgres
utilisateur. C'est leSU
principe de PostgreSQL, et il vous ouvre pour des attaques de connexion contre lui. Créez un autre super-utilisateur et réservez le verrouillépostgres
aux administrateurs UNIX avec root.Réponses:
Les autres réponses ne m'ont pas complètement satisfait. Voici ce qui a fonctionné pour postgresql-9.1 sur Xubuntu 12.04.1 LTS.
Connectez-vous à la base de données par défaut avec les postgres utilisateur:
Définissez le mot de passe pour les postgres utilisateur, puis quittez psql (Ctrl-D):
Modifiez le
pg_hba.conf
fichier:et changez "peer" en "md5" sur la ligne concernant les postgres:
Pour savoir quelle version de postgresql vous exécutez, recherchez le dossier de version sous
/etc/postgresql
. Vous pouvez également utiliser Nano ou un autre éditeur au lieu de VIM.Redémarrez la base de données:
(Ici, vous pouvez vérifier si cela a fonctionné
psql -U postgres
).Créez un utilisateur portant le même nom que vous (pour le trouver, vous pouvez taper
whoami
):Les options indiquent à postgresql de créer un utilisateur qui peut se connecter, créer des bases de données, créer de nouveaux rôles, est un superutilisateur et aura un mot de passe crypté. Les plus importants sont -P -E, de sorte qu'on vous demande de taper le mot de passe qui sera crypté, et -d pour que vous puissiez faire un
createdb
.Méfiez-vous des mots de passe : il vous demandera d'abord deux fois le nouveau mot de passe (pour le nouvel utilisateur), répété, puis une fois le mot de passe postgres (celui spécifié à l'étape 2).
Encore une fois, modifiez le
pg_hba.conf
fichier (voir l'étape 3 ci-dessus), et remplacez «homologue» par «md5» sur la ligne concernant «tous» les autres utilisateurs:Redémarrez (comme à l'étape 4) et vérifiez que vous pouvez vous connecter sans postgres -U:
Notez que si vous faites un simple
psql
, cela échouera car il essaiera de vous connecter à une base de données par défaut portant le même nom que vous (c'est-à-direwhoami
). template1 est la base de données d'administration qui est là depuis le début.Maintenant, ça
createdb <dbname>
devrait marcher.la source
pg_hba.conf
doit être la première ligne, sinon elle pourrait être ignorée à cause d'autres règles (pgsql 9.3.5 sur F21). Il m'a fallu un certain temps pour comprendre cela, que les lignes non commentées et changeantes déjà commentées pour l'utilisateur postgresql ne suffiront pas simplement.local all all peer
le point 3 vers lequel je suis devenumd5
. D'accord?Sous Linux PostgresQL est généralement configuré pour permettre à l'utilisateur root de se connecter en tant que superutilisateur postgres à
postgres
partir du shell (console ou ssh).Ensuite, vous créez simplement une nouvelle base de données comme d'habitude:
Cela devrait fonctionner sans toucher
pg_hba.conf
. Si vous voulez être en mesure de le faire en utilisant un outil GUI sur le réseau - alors vous devrez jouer avecpg_hba.conf
.la source
psql: FATAL: Peer authentication failed for user "postgres"
même avec sudo.psql -d mydatatabase -U myuser
.Voici ma solution:
la source
sudo bash
.Il existe deux méthodes que vous pouvez utiliser. Les deux nécessitent la création d'un utilisateur et d' une base de données.
En utilisant createuser et createdb ,
Utilisation des commandes d'administration SQL et connexion avec un mot de passe via TCP
Et puis dans le shell psql
Ensuite, vous pouvez vous connecter,
Si vous ne connaissez pas le port, vous pouvez toujours l'obtenir en exécutant ce qui suit, en tant
postgres
qu'utilisateur,Ou,
Sidenote: l'
postgres
utilisateurJe suggère de ne PAS modifier l'
postgres
utilisateur.postgres
. Vous êtes censé avoir root pour vous authentifierpostgres
.postgres
qu'équivalent PostgreSQL de SQL ServerSA
, vous devez avoir un accès en écriture aux fichiers de données sous-jacents. Et, cela signifie que vous pourriez normalement faire des ravages de toute façon.la source
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
fait de l'utilisateur un superutilisateur.EDIT: Attention: Veuillez lire la réponse publiée par Evan Carroll . Il semble que cette solution ne soit pas sûre et déconseillée.
Cela a fonctionné pour moi dans l' installation standard d' Ubuntu 14.04 64 bits .
J'ai suivi les instructions, avec de petites modifications, que j'ai trouvées dans 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
À:
#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
la source
postgres
utilisateur est une mauvaise idée. stackoverflow.com/a/41604969/124486la source
Vous devrez probablement mettre à jour votre
pg_hba.conf
fichier. Ce fichier contrôle les utilisateurs qui peuvent se connecter à partir de quelles adresses IP. Je pense que l'utilisateur postgres est assez verrouillé par défaut.la source
/var/lib/pgsql/data/pg_hba.conf
. Passezident
àtrust
forhost
(etlocal
si vous utilisez ssh).Si vous utilisez macOS comme je le suis, vous ne disposez peut-être pas de l'utilisateur postgres.
En essayant de courir,
sudo -u postgres psql
j'obtenais l'erreursudo: unknown user: postgres
Heureusement, il existe des exécutables fournis par postgres.
Ensuite, j'ai pu accéder
psql
sans problèmes.Si vous créez une nouvelle instance postgres à partir de zéro, voici les étapes que j'ai suivies. J'ai utilisé un port autre que celui par défaut pour pouvoir exécuter deux instances.
Ensuite, j'ai édité
/var/postgres/var-10-local/postgresql.conf
avec mon port préféré, 5433.Terminé!
la source
Sous MacOS, j'ai suivi les étapes ci-dessous pour le faire fonctionner.
Pour la première fois, après l'installation, obtenez le nom d'utilisateur du système.
Maintenant que vous êtes connecté au système et que vous pouvez créer la base de données.
la source
Parcourez simplement le répertoire de votre installation et exécutez ce fichier "pg_env.bat", donc après allez dans le dossier bin et exécutez pgAdmin.exe. Cela doit fonctionner sans aucun doute!
la source