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

J'utilise Ubuntu. Quelques jours avant d'installer la base de données Postgresql pour ruby on 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 aider à réinitialiser le mot de passe pour le superutilisateur? Une chose que j'ai essayé, je l'ai désinstallé puis installé à nouveau, mais son super-utilisateur est conservé qui est précédemment créé.

67
demandé sur Simon Woodside 2013-01-29 21:04:56

1 réponses

En Supposant que vous êtes l'administrateur de la machine, Ubuntu vous a accordé le droit de sudo pour exécuter n'importe quelle commande en tant qu'utilisateur.
En supposant également que vous n'avez 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 principale version de postgres et main le 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 le pg_lsclusters pour obtenir cette information pour votre version / système).

Quoi qu'il en soit, si le fichier pg_hba.conf 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 avec psql en tant 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, postgres est le nom d'un super-utilisateur. Si l'utilisateur dont le mot de passe est oublié était ritesh, la commande être:

ALTER USER ritesh PASSWORD 'newpassword';

Références: PostgreSQL 9.1.13 Documentation, Chapitre 19. Authentification Du Client

Gardez à l'esprit que vous avez besoin de type postgres, avec un seul S à la fin

159
répondu Daniel Vérité 2015-12-09 13:55:09