Jawaban lain tidak sepenuhnya memuaskan bagi saya. Inilah yang berfungsi untuk postgresql-9.1 di Xubuntu 12.04.1 LTS.
-
Hubungkan ke database default dengan postgres pengguna:
sudo -u postgres psql template1
-
Tetapkan kata sandi untuk postgres pengguna, lalu keluar dari psql (Ctrl-D):
ALTER USER postgres dengan kata sandi terenkripsi 'xxxxxxx';
-
Edit
pg_hba.conf
berkas:sudo vim /etc/postgresql/9.1/main/pg_hba.conf
dan ubah "peer" menjadi "md5" pada baris tentang postgres:
lokal semua postgres
rekanmd5Untuk mengetahui versi postgresql yang Anda jalankan, cari folder versi di bawah
/etc/postgresql
. Selain itu, Anda dapat menggunakan Nano atau editor lain selain VIM. -
Mulai ulang basis data :
sudo /etc/init.d/postgresql restart
(Di sini Anda dapat memeriksa apakah itu berfungsi dengan
psql -U postgres
). -
Buat pengguna yang memiliki nama yang sama dengan Anda (untuk menemukannya, Anda dapat mengetik
whoami
):sudo createuser -U postgres -d -e -E -l -P -r -s
<my_name>
Opsi tersebut memberi tahu postgresql untuk membuat pengguna yang dapat masuk, membuat basis data, membuat peran baru, adalah pengguna super, dan akan memiliki kata sandi terenkripsi. Yang paling penting adalah -P -E, sehingga Anda diminta mengetikkan kata sandi yang akan dienkripsi, dan -d agar Anda dapat melakukan
createdb
.Hati-hati dengan sandi :pertama-tama akan meminta Anda dua kali kata sandi baru (untuk pengguna baru), diulang, dan kemudian sekali kata sandi postgres (yang ditentukan pada langkah 2).
-
Sekali lagi, edit
pg_hba.conf
file (lihat langkah 3 di atas), dan ubah "peer" menjadi "md5" pada baris tentang "semua" pengguna lain:lokal semua semua
rekanmd5 -
Mulai ulang (seperti pada langkah 4), dan periksa apakah Anda dapat masuk tanpa -U postgres:
template psql1
Perhatikan bahwa jika Anda hanya melakukan
psql
, itu akan gagal karena akan mencoba menghubungkan Anda ke database default yang memiliki nama yang sama dengan Anda (yaituwhoami
). template1 adalah database admin yang ada di sini sejak awal. -
Sekarang
createdb <dbname>
harus bekerja.