Comment configurer postgresql pour la première fois?
Je viens d'installer postgresql et j'ai spécifié un mot de passe x lors de l'installation.
Quand j'essaie de faire createdb
et spécifier un mot de passe, j'obtiens le message:
createdb: impossible de se connecter à une base de données postgres: FATAL: le mot de passe d'authentification a échoué pour l'utilisateur
Même pour createuser
.
Comment dois-je commencer?
Puis-je m'inscrire en tant qu'utilisateur de la base de données?
- Double Possible de Comment puis-je me connecter et s'authentifier à Postgresql après une nouvelle installation?
- C'est presque la même que cette question, qui a demandé un an plus tard. Mais, je crois que celui-ci a un dangereux réponse primaire. Vous devez vous pas mettre en place la
postgres
de l'utilisateur. C'est leSU
de PostgreSQL, et il vous ouvre pour la connexion-les attaques contre elle. Créer un autre super-utilisateur, et se réserve le verrouillépostgres
pour UNIX admins avec la racine.
Vous devez vous connecter pour publier un commentaire.
Autres réponses n'ont pas été entièrement satisfaisante pour moi. Voici ce qui a fonctionné pour postgresql-9.1 sur Xubuntu 12.04.1 LTS.
Se connecter à la base de données par défaut de l'utilisateur postgres :
Définir le mot de passe pour l'utilisateur postgres, puis la sortie de psql (Ctrl-D) :
Modifier le
pg_hba.conf
fichier :Et le changement "par les pairs" pour "md5" sur la ligne concernant postgres :
Redémarrer la base de données :
(Vous pouvez vérifier ici il a travaillé avec
psql -U postgres
.)Créer un utilisateur ayant le même nom que vous (pour la trouver, vous pouvez taper
whoami
) :Les options dites postgresql pour créer un utilisateur qui peut se connecter, créer des bases de données, de créer de nouveaux rôles, c'est un super-utilisateur, et aura un mot de passe crypté. Ce qui est vraiment important sont -P -E, de sorte que vous êtes invité à saisir le mot de passe sera crypté, et-d, de sorte que vous pouvez faire un
createdb
.Méfiez-vous des mots de passe : il va d'abord vous demander deux fois le nouveau mot de passe pour le nouvel utilisateur), répété, et puis une fois le mot de passe de postgres (celui spécifié à l'étape 2).
De nouveau, modifier la
pg_hba.conf
fichier (voir l'étape 3 ci-dessus), et le changement "par les pairs" pour "md5" sur la ligne concernant "tous" les autres utilisateurs :Redémarrer (comme dans l'étape 4), et vérifiez que vous pouvez vous connecter sans -U postgres :
Noter que si vous faites un simple
psql
, ce sera un échec, car il va essayer de vous connecter à une base de données par défaut ayant le même nom que vous (ie.whoami
). template1 est l'administrateur de la base de données qui est ici depuis le début.Maintenant
createdb <dbname>
devrait fonctionner.pg_hba.conf
doit être la première ligne, sinon il pourrait obtenir ignorée parce que d'autres règles (pgsql 9.3.5 sur F21). Il m'a fallu un certain temps pour comprendre cela, que de décommenter et l'évolution déjà commenté les lignes pour les utilisateurs de postgresql ne sera pas tout simplement le faire.local all all peer
dans le point 3 qui j'ai maintenant changé demd5
. Ok?Sous Linux PostgresQL est généralement configuré pour permettre à l'utilisateur root pour vous connecter en tant que super-utilisateur postgres
postgres
à partir de l'interpréteur de commandes (console ou ssh).Ensuite vous suffit de créer une nouvelle base de données comme d'habitude:
Cela devrait fonctionner sans toucher
pg_hba.conf
. Si vous voulez être en mesure de faire cela en utilisant certains outil graphique sur le réseau, alors vous auriez besoin de jouer avecpg_hba.conf
.psql: FATAL: Peer authentication failed for user "postgres"
même avec sudo.psql -d mydatatabase -U myuser
.C'est ma solution:
sudo bash
.Il existe deux méthodes que vous pouvez utiliser. Les deux nécessitent la création d'un utilisateur et une base de données.
À l'aide de createuser et createdb,
À l'aide de SQL commandes d'administration, et de se connecter avec un mot de passe sur TCP
Et, ensuite, dans la psql shell
Ensuite, vous pouvez vous connecter,
Si vous ne savez pas du port, vous pouvez toujours l'obtenir en exécutant la commande suivante, comme le
postgres
utilisateur,Ou,
Note: le
postgres
utilisateurJe suggère PAS la modification de la
postgres
utilisateur.postgres
. Vous êtes censé avoir de la racine pour obtenir de l'authentifier commepostgres
.postgres
qui est le PostgreSQL équivalent de SQL ServerSA
, vous devez avoir l'accès en écriture aux fichiers de données. Et, cela signifie que vous pourrait normalement des ravages de toute façon.sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
fait de l'utilisateur un super-utilisateur.EDIT: Avertissement: s'il vous Plaît, lisez la réponse posté par Evan Carroll. Il semble que cette solution n'est pas sûr et n'est pas recommandé.
Cela a fonctionné pour moi dans la norme Ubuntu 14.04 64 bits installation.
J'ai suivi les instructions, avec de petites modifications, que j'ai trouvé 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
postgres
utilisateur est une mauvaise idée. stackoverflow.com/a/41604969/124486Vous avez probablement besoin de mettre à jour votre
pg_hba.conf
fichier. Ce fichier contrôle ce que les utilisateurs peuvent se connecter à partir de ce que les adresses IP. Je pense que l'utilisateur postgres est assez verrouillé par défaut./var/lib/pgsql/data/pg_hba.conf
. Changementident
àtrust
pourhost
(etlocal
si vous utilisez ssh).Si vous êtes sous macOS comme je suis, vous ne pouvez pas avoir l'utilisateur postgres.
Lorsque vous essayez d'exécuter
sudo -u postgres psql
j'obtenais l'erreursudo: unknown user: postgres
Heureusement, il y a des fichiers exécutables qui postgres fournit.
Ensuite, j'ai été en mesure d'accéder à
psql
sans problèmes.Si vous êtes à la création d'un nouveau postgres exemple à partir de zéro, voici les étapes que j'ai pris. J'ai utilisé un port non défini par défaut afin que je puisse exécuter deux instances.
Puis j'ai édité
/var/postgres/var-10-local/postgresql.conf
avec mon préféré port 5433.Fait!
Il suffit de parcourir jusqu'à votre installation de répertoire et exécuter ce fichier "pg_env.chauve-souris", donc après aller au dossier bin et exécutez pgAdmin.exe. Cela doit fonctionner sans aucun doute!