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éé.
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