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.confberkas: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.conffile (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.