web-dev-qa-db-fra.com

Réinitialisation du mot de passe de PostgreSQL sur Ubuntu

J'utilise Ubuntu. Quelques jours auparavant, j'avais installé la base de données Postgresql pour Ruby sur Rails. J'ai créé un superutilisateur pour le serveur de base de données et j'ai oublié le mot de passe du superutilisateur postgresql. Quelqu'un peut-il nous aider à réinitialiser le mot de passe du superutilisateur? Une chose que j’ai essayée, je l’ai désinstallée puis installée à nouveau, mais son super-utilisateur est conservé.

79
Ritesh Mehandiratta

En supposant que vous soyez l'administrateur de la machine, Ubuntu vous a accordé le droit Sudo d'exécuter n'importe quelle commande en tant qu'utilisateur.
En supposant également que vous n’ayez pas restreint les droits dans le fichier pg_hba.conf (Dans le répertoire /etc/postgresql/9.1/main), 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.1 Est la version majeure de Postgres et main le nom de votre "cluster". Il sera différent si vous utilisez une version plus récente de noms postgres ou non par défaut. Utilisez la commande pg_lsclusters Pour obtenir cette information pour votre version/système).

Quoi qu'il en soit, si le fichier pg_hba.conf Ne comporte pas cette ligne, modifiez-le, ajoutez-le et rechargez le service avec Sudo service postgresql reload.

Ensuite, vous devriez pouvoir vous connecter avec psql en tant que superutilisateur postgres avec cette commande Shell:

Sudo -u postgres psql

Une fois dans psql, lancez la commande SQL:

ALTER USER postgres PASSWORD 'newpassword';

Dans cette commande, postgres est 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 de PostgreSQL 9.1.13, Chapitre 19. Authentification du client

N'oubliez pas que vous devez taper postgres avec un seul [~ # ~] s [~ # ~] à la fin

179
Daniel Vérité