Saya baru saja menginstal Postgres dan telah mengutak-atiknya dan berbagai konfigurasi selama 1-2 jam.
Saya terjebak karena tidak dapat mengubah ke pengguna postgres
$ su - postgres
menghasilkan kesalahan berikut: su: unknown login: postgres
$ sudo -u postgres psql
menghasilkan kesalahan berikut: sudo: unknown user: postgres
Upaya ini dilakukan sebagai pengguna biasa. Mencoba mereka sebagai root memiliki hasil yang sama persis. Saya telah menginstal postgres melalui Homebrew di OS X, dan saya telah membaca instruksinya berkali-kali.
macos
postgresql
krystah
sumber
sumber
postgres
pengguna yang tepat .postgres_
gantinya. Catatan mengikuti garis bawah. Selain itu, apakah Anda yakin (atau penginstal) benar-benar membuat instance PostgreSQL dan memulai database?postgres
pengguna. Memecahkan masalah setelah menginstalpostgresql-server
paket.Jawaban:
psql
: Masukkan saya dengan nama pengguna default sayapsql -U postgres
: Masukkan saya sebagai pengguna postgresSudo sepertinya tidak diperlukan untukku.
Saya menggunakan Postgres.app untuk database postgres OS X saya. Ini menghilangkan sakit kepala karena memastikan penginstalan berfungsi dan server database diluncurkan dengan benar. Lihat di sini: http://postgresapp.com
Edit: Penghargaan untuk @Erwin Brandstetter karena mengoreksi penggunaan argumen saya.
sumber
psql postgres
danpsql -d postgres
.Oleh
psql --help
, ketika Anda tidak mengatur opsi untuk nama database (tanpa-d
opsi) itu akan menjadi nama pengguna Anda, jika Anda tidak melakukannya-U
, nama pengguna database akan menjadi nama pengguna Anda juga, dll.Tetapi dengan
initdb
(untuk membuat database pertama) perintah itu tidak memiliki nama pengguna Anda sebagai nama database. Ini memiliki database bernamapostgres
. Database pertama selalu dibuat oleh perintah initdb ketika area penyimpanan data diinisialisasi. Database ini disebut postgres.Jadi jika Anda tidak memiliki database lain yang bernama nama pengguna Anda, Anda perlu melakukan
psql -d postgres
perintah psql agar berfungsi. Dan tampaknya itu memberi-d
opsi secara default,psql postgres
juga berfungsi.Jika Anda telah membuat nama database lain yang sama dengan nama pengguna Anda, (itu harus dilakukan dengan
createdb
) maka Andapsql
hanya dapat memerintahkan . Dan tampaknya nama pengguna database pertama ditetapkan sebagai nama pengguna mesin Anda oleh brew.atau,
akan bekerja secara default.
sumber
OS X cenderung mengawali nama akun sistem dengan "_"; Anda tidak mengatakan versi OS X yang Anda gunakan, tetapi setidaknya di 10.8 dan 10.9 pengguna _postgres ada dalam penginstalan default. Perhatikan bahwa Anda tidak akan dapat
su
mengakses akun ini (kecuali sebagai root), karena tidak memiliki kata sandi.sudo -u _postgres
, di sisi lain, seharusnya bekerja dengan baik.sumber
diskusi dan jawaban di sini sangat membantu saya:
psql: FATAL: database "<user>" tidak ada
sumber
Bekerja dengan baik untuk saya dalam kasus nama db: postgres & nama pengguna: postgres. Jadi Anda tidak perlu menulis sudo.
Dan dalam kasus db lain, Anda dapat mencoba
Seperti yang diberikan dalam bantuan Postgres:
sumber
$ psql -U postgres
menghasilkan keluaranpsql: FATAL: role "postgres" does not exist
, tetapipsql postgres
berfungsi.Saya mendapatkan kesalahan yang sama persis dengan kryshah dengan
su - postgres
dansudo -u postgres psql
. Jawaban DanielM juga memberikan kesalahan.Keluaran saat pengaturan salah
Namun jawaban dari komentar przbabu.
masi$ psql psql: FATAL: database "masi" does not exist masi$ psql -U postgres psql: FATAL: role "postgres" does not exist masi$ psql postgres psql (9.4.1) Type "help" for help.
Saya pikir beberapa bagian dari masalah ini mungkin ada dalam pengaturan pemilik di OSX
masi$ ls -al /Users/ total 0 drwxr-xr-x 7 root admin 238 Jul 3 09:50 . drwxr-xr-x 37 root wheel 1326 Jul 2 19:02 .. -rw-r--r-- 1 root wheel 0 Sep 10 2014 .localized drwxrwxrwt 7 root wheel 238 Apr 9 19:49 Shared drwxr-xr-x 2 root admin 68 Jul 3 09:50 postgres drwxr-xr-x+ 71 masi staff 2414 Jul 3 09:50 masi
tapi melakukan
sudo chown -R postgres:staff /Users/postgres
memberichown: invalid user: ‘postgres:staff’
.Singkatnya, ini bukanlah solusi masalahnya. Gunakan alat yang disediakan oleh instalasi postgres untuk membuat pengguna dan database.
Untuk mendapatkan pengaturan dan keluaran yang benar
Ada perintah khusus setelah instalasi postgres untuk menambahkan pengguna baru ke sistem database. Setelah initdb, jalankan perintah berikut seperti yang dijelaskan di sini
createuser --pwprompt postgres createdb -Opostgres -Eutf8 masi_development psql -U postgres -W masi_development
Untuk menghindari permintaan kata sandi setiap saat, Anda memiliki tiga pilihan seperti yang dijelaskan di sini .
sumber
Bagi saya Ini adalah solusi di macOS Instal ulang psql
brew install postgres
Mulai server PostgreSQL
pg_ctl -D /usr/local/var/postgres start
Inisialisasi DB
Jika perintah ini menimbulkan kesalahan, rm file database lama dan jalankan kembali perintah di atas
Buat database baru
Anda akan masuk ke db ini dan dapat membuat pengguna di sini untuk masuk
sumber
Solusinya sederhana:
masuk sebagai root
dan setelah:
sumber