PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment configurer postgresql pour la première fois ?

Les autres réponses ne me satisfaisaient pas complètement. Voici ce qui a fonctionné pour postgresql-9.1 sur Xubuntu 12.04.1 LTS.

  1. Connectez-vous à la base de données par défaut avec l'utilisateur postgres :

    sudo -u postgres modèle psql1

  2. Définissez le mot de passe pour l'utilisateur postgres, puis quittez psql (Ctrl-D) :

    ALTER USER postgres avec le mot de passe crypté 'xxxxxxx' ;

  3. Modifiez le pg_hba.conf fichier :

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    et changez "peer" en "md5" sur la ligne concernant postgres :

    local      tous     postgres pair md5

    Pour savoir quelle version de postgresql vous utilisez, recherchez le dossier de version sous /etc/postgresql . Vous pouvez également utiliser Nano ou un autre éditeur au lieu de VIM.

  4. Redémarrez la base de données :

    sudo /etc/init.d/postgresql redémarrage

    (Ici, vous pouvez vérifier si cela a fonctionné avec psql -U postgres ).

  5. Créez un utilisateur ayant le même nom que vous (pour le trouver, vous pouvez taper whoami ):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    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, pour 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).

  6. Encore une fois, modifiez le pg_hba.conf (voir étape 3 ci-dessus), et remplacez "peer" par "md5" sur la ligne concernant "tous" les autres utilisateurs :

    local      tous     tous pair md5

  7. Redémarrez (comme à l'étape 4), et vérifiez que vous pouvez vous connecter sans -U postgres :

    modèle psql1

    Notez que si vous faites un simple psql , il échouera car il essaiera de vous connecter à une base de données par défaut portant le même nom que vous (c'est-à-dire whoami ). template1 est la base de données d'administration qui est ici depuis le début.

  8. Maintenant createdb <dbname> devrait fonctionner.