Saya mencoba membuat database postgresql.
Ketika saya menginstal PostgreSQL, saya memberikan perintah ini:
sudo yum install postgresql postgresql-server
dan kemudian saya memodifikasi file konfigurasi:
sudo vim /var/lib/pgsql/data/pg_hba.conf
dan dimodifikasi sebagai
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 md5
Sementara saya mencoba memulai layanan postgresql:
sudo service postgresql initdb
> Data directory is not empty! [FAILED]
sudo chkconfig postgresql on
sudo service postgresql start
Starting postgresql service: [ OK ]
Apa yang menyebabkan kesalahan ini dan bagaimana cara memperbaikinya?
postgresql
installation
sridhar
sumber
sumber
Dari sini :
Jika Anda benar-benar menghapus & menginstal ulang Postgres DB, saat berjalan
initdb
seperti:service postgresql-9.2 initdb -E 'UTF8' --pgdata="/foo/bar/"
Anda dapat menemukan kesalahan layanan ini:
Untuk memperbaikinya (dan ini adalah opsi nuklir - semua data db dihapus!)
Di Amazon Linux (2014-x):
rm -rf /var/lib/pgsql9/data
Di CentOS (6.x)
rm -rf /var/lib/pgsql/9.2/data
Sekarang coba
initdb
perintah ini lagi dan itu akan berfungsi saat ini:service postgresql-9.2 initdb
sumber
Pada sistem berbasis sistem seperti RHEL / CentOS 7 dan Fedora, prosedur untuk menjalankan initdb agak berbeda. Ini tidak lagi dilakukan oleh skrip init (yang sudah tidak ada lagi), dan prosedur baru jauh lebih dekat dengan instruksi hulu .
Anda harus terlebih dahulu
su
kepostgres
pengguna, lalu jalankaninitdb
ataupg_ctl initdb
. Tidak perlu menyediakan direktori data jika Anda menggunakan Red Hat build karena standarnya secara otomatis memilih direktori data default/var/lib/pgsql
.Sebagai contoh:
Tentu saja, Anda hanya melakukan ini sekali, pada instalasi pertama, untuk mengatur direktori data awal. Anda tidak akan melakukannya lagi kecuali Anda membuat instalasi yang benar-benar baru atau memulihkan dari bencana.
sumber
Saya memiliki masalah yang sama, menggunakan PostgreSQL 9.3 di CentOS 6.
Saya menghapus folder /var/lib/pgsql/9.3/data, lalu menjalankan ulang perintahnya
... yang berhasil menginisialisasi layanan db lagi.
sumber