Saya baru saja menginstal postgresql dan saya menentukan kata sandi x selama instalasi. Ketika saya mencoba melakukan createdb
dan menentukan kata sandi apa pun, saya menerima pesan:
Createdb: tidak dapat terhubung ke postgres basis data: FATAL: otentikasi kata sandi gagal untuk pengguna
Sama untuk createuser
.
Bagaimana saya memulai? Bisakah saya menambahkan diri saya sebagai pengguna ke database?
linux
database
postgresql
configuration
Rohit Banga
sumber
sumber
postgres
pengguna. Ini adalahSU
PostgreSQL, dan membuka Anda untuk serangan masuk terhadapnya. Buat pengguna super lain , dan cadangan yang terkuncipostgres
untuk admin UNIX dengan root.Jawaban:
Jawaban lain tidak sepenuhnya memuaskan saya. Inilah yang bekerja untuk postgresql-9.1 di Xubuntu 12.04.1 LTS.
Terhubung ke database default dengan postgres pengguna:
Atur kata sandi untuk postgres pengguna, lalu keluar dari psql (Ctrl-D):
Edit
pg_hba.conf
file:dan ubah "peer" menjadi "md5" pada baris tentang postgres:
Untuk mengetahui versi postgresql yang Anda jalankan, cari folder versi di bawah
/etc/postgresql
. Anda juga dapat menggunakan Nano atau editor lain, bukan VIM.Mulai ulang basis data:
(Di sini Anda dapat memeriksa apakah itu berfungsi dengan
psql -U postgres
).Buat pengguna dengan nama yang sama dengan Anda (untuk menemukannya, Anda dapat mengetik
whoami
):Opsi memberi tahu postgresql untuk membuat pengguna yang bisa login, membuat database, membuat peran baru, adalah superuser, dan akan memiliki kata sandi terenkripsi. Yang sangat penting adalah -P -E, sehingga Anda diminta mengetikkan kata sandi yang akan dienkripsi, dan -d sehingga Anda dapat melakukan a
createdb
.Waspadai kata sandi : pertama-tama akan meminta Anda dua kali kata sandi baru (untuk pengguna baru), diulang, dan kemudian setelah kata sandi postgres (yang ditentukan pada langkah 2).
Sekali lagi, edit
pg_hba.conf
file (lihat langkah 3 di atas), dan ubah "rekan" menjadi "md5" pada baris yang terkait dengan "semua" pengguna lain:Mulai ulang (seperti pada langkah 4), dan periksa apakah Anda dapat masuk tanpa -U postgres:
Perhatikan bahwa jika Anda melakukan sesuatu
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>
harusnya bekerja.sumber
pg_hba.conf
harus baris pertama, jika tidak maka bisa diabaikan karena aturan lain (hal. 9.3.5 pada F21). Butuh beberapa waktu untuk memikirkan hal ini, bahwa penghapusan komentar dan perubahan baris yang sudah dikomentari untuk pengguna postgresql tidak akan begitu saja dilakukan.local all all peer
pada poin 3 yang sekarang saya ubahmd5
. Baik?Di Linux PostgresQL biasanya dikonfigurasi untuk memungkinkan pengguna root untuk masuk sebagai superuser postgres
postgres
dari shell (konsol atau ssh).Maka Anda hanya akan membuat database baru seperti biasa:
Ini harus bekerja tanpa menyentuh
pg_hba.conf
. Jika Anda ingin dapat melakukan ini menggunakan beberapa alat GUI melalui jaringan - maka Anda perlu mengacaukannyapg_hba.conf
.sumber
psql: FATAL: Peer authentication failed for user "postgres"
bahkan dengan sudo.psql -d mydatatabase -U myuser
.Ini solusi saya:
sumber
sudo bash
.Ada dua metode yang bisa Anda gunakan. Keduanya membutuhkan pembuatan pengguna dan database.
Menggunakan createuser dan createb ,
Menggunakan perintah administrasi SQL, dan menghubungkan dengan kata sandi melalui TCP
Dan, kemudian di shell psql
Kemudian Anda bisa masuk,
Jika Anda tidak tahu porta, Anda selalu bisa mendapatkannya dengan menjalankan yang berikut, sebagai
postgres
pengguna,Atau,
Sidenote: itu
postgres
penggunaSaya sarankan TIDAK memodifikasi
postgres
pengguna.postgres
. Anda seharusnya memiliki root untuk mendapatkan otentikasi sebagaipostgres
.postgres
yang setara dengan PostgreSQL dari SQL ServerSA
, Anda harus memiliki akses tulis ke file data yang mendasarinya. Dan, itu berarti bahwa Anda biasanya bisa menghancurkan malapetaka.sumber
sudo -u postgres createuser -U postgres -d -e -E -l -P -r -s $(whoami)
-s
membuat pengguna superuser.EDIT: Peringatan: Silakan, baca jawaban yang diposting oleh Evan Carroll . Tampaknya solusi ini tidak aman dan tidak disarankan.
Ini bekerja untuk saya dalam instalasi Ubuntu 14.04 64 bit standar .
Saya mengikuti instruksi, dengan modifikasi kecil, yang saya temukan di http://suite.opengeo.org/4.1/dataadmin/pgGettingStarted/firstconnect.html
sudo apt-get install postgresql
sudo –u postgres psql postgres
\password postgres
\q
#Database administrative login by Unix domain socket local all postgres peer
Untuk:
#Database administrative login by Unix domain socket local all postgres md5
sudo service postgresql restart
sudo –u postgres createdb mytestdb
psql –U postgres –W
\l
sumber
postgres
pengguna adalah ide yang buruk. stackoverflow.com/a/41604969/124486sumber
Anda mungkin perlu memperbarui
pg_hba.conf
file Anda . File ini mengontrol apa yang pengguna dapat login dari alamat IP apa. Saya pikir bahwa pengguna postgres cukup dikunci secara default.sumber
/var/lib/pgsql/data/pg_hba.conf
. Ubahident
ketrust
untukhost
(danlocal
jika Anda menggunakan ssh).Jika Anda menjalankan macOS seperti saya, Anda mungkin tidak memiliki pengguna postgres.
Saat mencoba lari
sudo -u postgres psql
saya mendapatkan kesalahansudo: unknown user: postgres
Untungnya ada file executable yang disediakan oleh postgres.
Kemudian saya dapat mengakses
psql
tanpa masalah.Jika Anda membuat instance postgres baru dari awal, berikut adalah langkah-langkah yang saya ambil. Saya menggunakan port non-default sehingga saya bisa menjalankan dua instance.
Kemudian saya edit
/var/postgres/var-10-local/postgresql.conf
dengan port pilihan saya, 5433.Selesai!
sumber
Di MacOS, saya mengikuti langkah-langkah di bawah ini untuk membuatnya berfungsi.
Untuk pertama kalinya, setelah instalasi, dapatkan nama pengguna sistem.
Sekarang Anda telah masuk ke sistem, dan Anda dapat membuat DB.
sumber
Cukup telusuri ke direktori instalasi Anda dan jalankan file ini "pg_env.bat", jadi setelah masuk ke folder bin dan jalankan pgAdmin.exe. Ini pasti berhasil!
sumber