Ostatní odpovědi mě úplně neuspokojily. Zde je to, co fungovalo pro postgresql-9.1 na Xubuntu 12.04.1 LTS.
-
Připojte se k výchozí databázi pomocí uživatelského postgres:
sudo -u postgres psql template1
-
Nastavte heslo pro uživatele postgres a poté ukončete psql (Ctrl-D):
ALTER USER postgres se zašifrovaným heslem 'xxxxxxx';
-
Upravte soubor
pg_hba.conf
soubor:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
a změňte "peer" na "md5" na řádku týkajícím se postgres:
místní všechny postgres
peermd5Chcete-li vědět, jakou verzi postgresql používáte, vyhledejte složku verze v
/etc/postgresql
. Místo VIM můžete také použít Nano nebo jiný editor. -
Restartujte databázi:
sudo /etc/init.d/postgresql restart
(Zde můžete zkontrolovat, zda to fungovalo s
psql -U postgres
). -
Vytvořte uživatele se stejným jménem jako vy (abyste ho našli, můžete napsat
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
Možnosti říkají postgresql, aby vytvořil uživatele, který se může přihlásit, vytvářet databáze, vytvářet nové role, je superuživatel a bude mít zašifrované heslo. Ty opravdu důležité jsou -P -E, takže budete požádáni o zadání hesla, které bude zašifrováno, a -d, abyste mohli provést
createdb
.Pozor na hesla :nejprve se vás dvakrát zeptá na nové heslo (pro nového uživatele), zopakuje, a poté jednou na heslo postgres (to, které je zadáno v kroku 2).
-
Znovu upravte
pg_hba.conf
soubor (viz krok 3 výše) a změňte „peer“ na „md5“ na řádku týkajícím se „všech“ ostatních uživatelů:místní vše vše
peermd5 -
Restartujte (jako v kroku 4) a zkontrolujte, zda se můžete přihlásit bez -U postgres:
psql template1
Všimněte si, že pokud uděláte pouhý
psql
, selže, protože se vás pokusí připojit k výchozí databázi se stejným jménem jako vy (tj.whoami
). template1 je databáze administrátorů, která je zde od začátku. -
Nyní
createdb <dbname>
by mělo fungovat.