De andere antwoorden waren voor mij niet helemaal bevredigend. Dit is wat werkte voor postgresql-9.1 op Xubuntu 12.04.1 LTS.
-
Maak verbinding met de standaarddatabase met gebruikerspostgres:
sudo -u postgres psql-sjabloon1
-
Stel het wachtwoord in voor gebruiker postgres en sluit vervolgens psql af (Ctrl-D):
ALTER GEBRUIKER postgres met versleuteld wachtwoord 'xxxxxxx';
-
Bewerk de
pg_hba.conf
bestand:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
en verander "peer" in "md5" op de regel betreffende postgres:
lokaal alle postgres
peermd5Om te weten welke versie van postgresql u gebruikt, zoekt u naar de versiemap onder
/etc/postgresql
. U kunt ook Nano of een andere editor gebruiken in plaats van VIM. -
Herstart de database :
sudo /etc/init.d/postgresql herstart
(Hier kunt u controleren of het werkte met
psql -U postgres
). -
Maak een gebruiker aan met dezelfde naam als jij (om deze te vinden, typ je
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
De opties vertellen postgresql om een gebruiker aan te maken die kan inloggen, databases kan maken, nieuwe rollen kan maken, een supergebruiker is en een gecodeerd wachtwoord zal hebben. De echt belangrijke zijn -P -E, zodat u wordt gevraagd het wachtwoord in te voeren dat wordt versleuteld, en -d zodat u een
createdb
kunt doen .Pas op voor wachtwoorden :het zal u eerst twee keer het nieuwe wachtwoord vragen (voor de nieuwe gebruiker), herhaald, en dan één keer het postgres-wachtwoord (degene gespecificeerd in stap 2).
-
Nogmaals, bewerk de
pg_hba.conf
bestand (zie stap 3 hierboven), en verander "peer" in "md5" op de regel betreffende "alle" andere gebruikers:lokaal alle alle
peermd5 -
Start opnieuw (zoals in stap 4) en controleer of u kunt inloggen zonder -U postgres:
psql-sjabloon1
Merk op dat als u slechts een
psql
, zal het mislukken omdat het zal proberen u te verbinden met een standaarddatabase met dezelfde naam als u (d.w.z.whoami
). template1 is de beheerdersdatabase die hier vanaf het begin is. -
Nu
createdb <dbname>
zou moeten werken.