De andre svar var ikke helt tilfredsstillende for mig. Her er, hvad der fungerede for postgresql-9.1 på Xubuntu 12.04.1 LTS.
-
Opret forbindelse til standarddatabasen med brugerens postgres:
sudo -u postgres psql skabelon1
-
Indstil adgangskoden til brugerens postgres, og afslut derefter psql (Ctrl-D):
ALTER USER postgres med krypteret adgangskode 'xxxxxxx';
-
Rediger
pg_hba.conf
fil:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
og skift "peer" til "md5" på linjen vedrørende postgres:
lokale alle postgres
peermd5For at vide, hvilken version af postgresql du kører, skal du kigge efter versionsmappen under
/etc/postgresql
. Du kan også bruge Nano eller en anden editor i stedet for VIM. -
Genstart databasen :
sudo /etc/init.d/postgresql genstart
(Her kan du tjekke om det virkede med
psql -U postgres
). -
Opret en bruger med samme navn som dig (for at finde den kan du skrive
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
Indstillingerne fortæller postgresql at oprette en bruger, der kan logge ind, oprette databaser, oprette nye roller, er en superbruger og vil have en krypteret adgangskode. De virkelig vigtige er -P -E, så du bliver bedt om at indtaste adgangskoden, der vil blive krypteret, og -d, så du kan lave en
createdb
.Pas på adgangskoder :det vil først bede dig to gange om den nye adgangskode (for den nye bruger), gentaget og derefter én gang postgres-adgangskoden (den angivet i trin 2).
-
Igen, rediger
pg_hba.conf
fil (se trin 3 ovenfor), og skift "peer" til "md5" på linjen vedrørende "alle" andre brugere:lokale alle alle
peermd5 -
Genstart (som i trin 4), og kontroller, at du kan logge ind uden -U postgres:
psql skabelon1
Bemærk, at hvis du blot laver
psql
, vil det mislykkes, da det vil forsøge at forbinde dig til en standarddatabase med samme navn som dig (dvs.whoami
). template1 er den admin database, der er her fra starten. -
Nu
createdb
burde virke.