Réinitialisation du mot de passe de PostgreSQL sur Ubuntu [fermé]

91

Dans Ubuntu, j'ai installé la base de données PostgreSQL et créé un superutilisateur pour le serveur.

Si j'ai oublié le mot de passe du superutilisateur postgresql, comment puis-je le réinitialiser (le mot de passe) pour cet utilisateur?

J'ai essayé de le désinstaller, puis de l'installer à nouveau, mais le superutilisateur précédemment créé est conservé.

Ritesh Mehandiratta
la source

Réponses:

208

En supposant que vous soyez l'administrateur de la machine, Ubuntu vous a accordé le droit à sudo d'exécuter n'importe quelle commande comme n'importe quel utilisateur.
En supposant également que vous n'ayez pas restreint les droits dans le pg_hba.conffichier (dans le /etc/postgresql/9.1/mainrépertoire), il devrait contenir cette ligne comme première règle:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(À propos de l'emplacement du fichier: 9.1est la version principale de postgres et mainle nom de votre "cluster". Il sera différent si vous utilisez une version plus récente de postgres ou des noms non par défaut. Utilisez la pg_lsclusterscommande pour obtenir ces informations pour votre version / système).

Quoi qu'il en soit, si le pg_hba.conffichier n'a pas cette ligne, modifiez le fichier, ajoutez-le et rechargez le service avec sudo service postgresql reload.

Ensuite, vous devriez pouvoir vous connecter en psqltant que superutilisateur postgres avec cette commande shell:

sudo -u postgres psql

Une fois dans psql, exécutez la commande SQL:

ALTER USER postgres PASSWORD 'newpassword';

Dans cette commande, postgresest le nom d'un superutilisateur. Si l'utilisateur dont le mot de passe est oublié était ritesh, la commande serait:

ALTER USER ritesh PASSWORD 'newpassword';

Références: Documentation PostgreSQL 9.1.13, Chapitre 19. Authentification du client

Gardez à l'esprit que vous devez taper postgres avec un seul S à la fin

Daniel Vérité
la source
2
j'ai utilisé votre méthode mon nom de super utilisateur est ritesh mon pg_hba.conf est celui que vous avez mentionné. J'ai exécuté la commande "ALTER USER postgres PASSWORD 'newpassword';" la console affiche 'ALTER ROLE'. puis je suis sorti en utilisant ctrl + c après que j'exécute une commande createuser. il montre pour entrer un mot de passe j'ai entré newpassword mais il me donne une erreur "createuser: impossible de se connecter à la base de données postgres: FATAL : l'authentification par mot de passe a échoué pour l'utilisateur "ritesh" ". Comment créer un utilisateur et quel devrait être le mot de passe pour cette commande ??
Ritesh Mehandiratta
Si vous souhaitez changer le mot de passe pour ritesh, changez le SQL ci-dessus enALTER USER ritesh PASSWORD 'newpassword'
Daniel Vérité
vous devriez redémarrer postgres après le changement de pg_hba.conf ....
Mahdi
1
Pas besoin de redémarrer, utilisez simplement pg_ctl reload.
hbn le