Saya sedang mengatur PostgreSQL 9.1 saya. Saya tidak bisa melakukan apa pun dengan PostgreSQL: tidak createdb
bisa, tidak bisa createuser
; semua operasi mengembalikan pesan kesalahan
Fatal: role h9uest does not exist
h9uest
adalah nama akun saya, dan saya sudo apt-get install
PostgreSQL 9.1 di bawah akun ini.
Kesalahan serupa tetap ada untuk root
akun tersebut.
postgresql
authentication
hestest
sumber
sumber
FATAL: role "user" is not permitted to log in
, periksa dba.stackexchange.com/questions/57723/… untuk itu.role doesn't exist
DAN kesalahancan't create role, it already exists
periksa jawaban ini: stackoverflow.com/a/56658832/1689770Jawaban:
Gunakan pengguna sistem operasi
postgres
untuk membuat database Anda - selama Anda belum mengatur peran database dengan hak istimewa yang diperlukan yang sesuai dengan pengguna sistem operasi Anda dengan nama yang sama (h9uest
dalam kasus Anda):Seperti yang disarankan di sini atau di sini .
Lalu coba lagi. Ketik
exit
ketika selesai dengan operasi sebagai pengguna sistempostgres
.Atau jalankan perintah tunggal
createuser
sebagaipostgres
dengansudo
, seperti yang ditunjukkan oleh Drees dalam jawaban lain.Intinya adalah untuk menggunakan pengguna sistem operasi yang cocok dengan peran database dengan nama yang sama untuk diberikan akses melalui
ident
otentikasi .postgres
adalah pengguna sistem operasi default yang telah menginisialisasi cluster database. Manual:Saya pernah mendengar tentang pengaturan aneh dengan nama pengguna non-standar atau di mana pengguna sistem operasi tidak ada. Anda perlu menyesuaikan strategi Anda di sana.
Baca tentang peran basis data dan otentikasi klien di manual.
sumber
sudo etc
sebagai postgres pengguna ... Bagaimana cara menginstal suatu program? Lihat masalah pemasangan S2geometri ini .su postgres
.sudo -u postgres
tidak bekerja, sambilsudo -u postgres -i
bekerja! Apa yang dilakukan-i
bendera?su
, tetapi berdasarkan hak istimewa sudo. Lihatman sudo
.Setelah mencoba banyak solusi orang lain, dan tanpa hasil, jawaban ini akhirnya membantu saya.
https://stackoverflow.com/a/16974197/2433309
Singkatnya, berlari
membuat peran dengan nama owning_user (dalam hal ini, h9uest). Setelah itu Anda dapat menjalankan
rake db:create
dari terminal dengan nama akun apa pun yang Anda atur tanpa harus masuk ke lingkungan Postgres.sumber
-s
, dan tidak perlu menggunakansudo -u postgres
(hanyacreateuser new_user
berfungsi dengan baik)psql: FATAL: role "jonny" does not exist
oke jadisudo -u postgres -s createuser jonny
mengapacreateuser: creation of new role failed: ERROR: role "jonny" already exists
menciptakan peran di pgsql dengan hak istimewa sebagai "superuser"
Lalu buat pengguna
Tetapkan hak istimewa untuk pengguna
Dan kemudian aktifkan login pengguna itu, sehingga Anda dapat menjalankan mis:,
psql template1
dari$
terminal normal :sumber
CREATE ROLE username superuser createdb login;
yang menggabungkan ketiga langkah ...sudo -u postgres createuser --superuser $USER; sudo -u postgres createdb $USER
#GRANT postgres TO username
Menginstal postgres menggunakan
apt-get
tidak membuat peran pengguna atau database.Untuk membuat peran pengguna super dan basis data untuk akun pengguna pribadi Anda:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
sumber
sudo -u postgres createdb $(whoami)
-s
bendera pada perintah pertama), Anda dapat membuat database sebagai diri Anda sendiri. Anda tidak perlu menjalankancreatedb
sebagaipostgres
.Ini bekerja untuk saya:
sumber
postgres
(diuji pada Linux dan Windows).role postgres does not exist
Metode kerja,
vi /etc/postgresql/9.3/main/pg_hba.conf
local all postgres peer
di sini ubah rekan menjadi kepercayaanmengulang kembali,
sudo service postgresql restart
sekarang coba,
psql -U postgres
sumber
trust
metode ini hanya disarankan di lingkungan yang sepenuhnya aman. Meskipun akses dari koneksi yang tidak terpercaya dimungkinkan, jangan pernah memaparkan kluster DB Anda seperti itu.pg_hba.conf
Untuk versi Postgres 9.5 gunakan perintah berikut:
Semoga ini bisa membantu.
sumber
sumber
psql postgres
hasil:psql: FATAL: role "root" does not exist
psql postgres -U postgres
? Tergantung pada pengguna (-U) yang Anda miliki.Di prompt pengguna lokal, bukan prompt pengguna root, ketik
Kemudian masukkan kata sandi untuk pengguna lokal.
Kemudian masukkan perintah sebelumnya yang menghasilkan "peran 'nama pengguna' tidak ada."
Langkah-langkah di atas memecahkan masalah bagi saya. Jika tidak, silakan kirim pesan terminal untuk langkah-langkah di atas.
sumber
Saya menginstalnya di macOS dan harus:
Inilah sumbernya: https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
sumber
Membuat kluster DB secara manual memecahkannya dalam kasus saya.
Untuk beberapa alasan, ketika saya menginstal postgres, "DB awal" tidak dibuat. Pelaksana
initdb
melakukan trik untuk saya.Solusi ini disediakan di PostgreSQL Wiki - Langkah pertama :
sumber
Untuk pengguna Windows :
psql -U postgres
Anda akan melihat antarmuka baris perintah ke PostgreSQL:
postgres=#
sumber
Ikuti Langkah-Langkah Ini dan Akan Berhasil Untuk Anda:
msfconsole
db_connect user:pass@host:port.../database
maaf saya tidak ingat tapi itu seperti yang ini kemudian ganti pengguna dan kata sandi dan host dan database dengan informasi yang termasuk dalamdatabase.yml
emplacement :/usr/share/metasploit-framework/config
msfconsole: msf>db_status
Anda akan melihat bahwa itu terhubung.sumber
dump dan restore dengan
--no-owner --no-privileges
flagmisalnya
dump -
pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump
pulihkan -
pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump
sumber