Другите отговори не ме удовлетвориха напълно. Ето какво работи за postgresql-9.1 на Xubuntu 12.04.1 LTS.
-
Свържете се с базата данни по подразбиране с потребител postgres:
sudo -u postgres psql template1
-
Задайте паролата за потребителя postgres, след което излезте от psql (Ctrl-D):
ПРОМЕНИ ПОТРЕБИТЕЛЯ postgres с криптирана парола 'xxxxxxx';
-
Редактирайте
pg_hba.conf
файл:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
и променете "peer" на "md5" в реда относно postgres:
local всички postgres
връстникmd5За да разберете каква версия на postgresql използвате, потърсете папката с версията под
/etc/postgresql
. Освен това можете да използвате Nano или друг редактор вместо VIM. -
Рестартирайте базата данни :
sudo /etc/init.d/postgresql рестартиране
(Тук можете да проверите дали работи с
psql -U postgres
). -
Създайте потребител със същото име като вас (за да го намерите, можете да въведете
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
Опциите казват на postgresql да създаде потребител, който може да влиза, да създава бази данни, да създава нови роли, да е суперпотребител и да има криптирана парола. Наистина важните са -P -E, така че да бъдете помолени да въведете паролата, която ще бъде криптирана, и -d, за да можете да направите
createdb
.Пазете се от пароли :първо ще ви попита два пъти новата парола (за новия потребител), повторена и след това веднъж паролата за postgres (тази, посочена в стъпка 2).
-
Отново редактирайте
pg_hba.conf
файл (вижте стъпка 3 по-горе) и променете „peer“ на „md5“ на реда относно „всички“ други потребители:local всички всички
връстникmd5 -
Рестартирайте (както в стъпка 4) и проверете дали можете да влезете без -U postgres:
psql шаблон1
Имайте предвид, че ако направите просто
psql
, ще се провали, тъй като ще се опита да ви свърже с база данни по подразбиране със същото име като вас (т.е.whoami
). template1 е администраторската база данни, която е тук от самото начало. -
Сега
createdb <dbname>
трябва да работи.