Saya telah berhasil menginstal PostgreSQL 9.3 dari repositori APT pada 2 VM yang menjalankan Ubuntu 12.04 dan 13.04 ... namun, saya tidak bisa menginstalnya dengan benar di mesin host saya yang menjalankan Ubuntu 12.04.
Instalasi (kali ini) tampaknya sudah ok, tapi mungkin ada kesalahan yang saya tidak mengerti:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Jadi saya kemudian mencoba menambahkan diri saya sebagai pengguna PostgreSQL, tetapi saya mendapatkan ini:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Saya tidak dapat melihat PostgreSQL berjalan di monitor sistem, dan tidak ada file di folder / var / run / postgresql / ... benar-benar kosong.
EDIT: Di VM, ada file di / var / run / postgresql / bernama 9.3-main.pid
Tidak ada apa pun pada file log mesin host yang terletak / var / log / postgresql
Jadi ... apa yang terjadi di sini yang tidak terjadi di VM saya? Seperti yang saya katakan, instalasi lain di VM, termasuk PostGIS dan PGAdmin datang dengan sempurna ... tidak tahu mengapa mesin host ini tidak melalui ...
sumber
/var/run/postgresql
direktori? Pada satu tahap setelah instalasi berhasil folder itu hilang di mesin saya. Apa yang dikatakan konfigurasi tentang direktori mana yang harus digunakan?postgresql.conf
dalam direktori config, yang menurut di atas, adalah/etc/postgresql/9.3/main
. Anda juga harus mencari di file log, mungkin di/var/log/postgresql
.Jawaban:
Pengaturan lokal saya tidak dikonfigurasi dengan benar ketika PostgreSQL diinstal. Membersihkan dan menginstal ulang tidak membantu. Saya mengikuti instruksi di sini dan itu berhasil bagi saya.
Bagian penting dari informasi tertaut yang direproduksi di bawah:
Masalahnya muncul dengan cara berikut:
Yang pertama sangat mudah diselesaikan dengan mengeksekusi:
... dan memilih lokal yang disukai.
Namun setelah itu PostgreSQL masih menolak untuk memulai. Ini disebabkan oleh fakta bahwa proses instalasi mencoba membuat sebuah cluster pada waktu instalasi tetapi karena lokasi yang buruk ini tidak dilakukan. Jadi kita harus mengulangi langkah ini dengan mengeksekusi:
(Untuk versi 9.3 PostgreSQL)
Setelah langkah itu PostgreSQL dimulai dengan sempurna
sumber
pg_createcluster
memberitahu Anda bahwa cluster sudah ada yang Anda butuhkan untuk menjatuhkannya pertama (ini akan menghapus data apapun di dalamnya, jadi pastikan Anda memiliki cadangan):pg_dropcluster 9.3 main
.Semoga Anda sudah menyelesaikan masalah ini, tetapi saya mengalami masalah serupa yang tampaknya memiliki sumber yang berbeda, dan mungkin pengalaman saya akan membantu jika Anda masih mengalami masalah.
Masalah saya dengan 9.3 di Ubuntu berkaitan dengan dir socket menjadi transient dir / run. Pada dasarnya, skrip init.d seharusnya menangani pembuatan dir socket di / run / postgresql jika tidak ada selama tindakan awal. Ini akan selalu menjadi keadaan setelah reboot.
Masalahnya adalah, bagaimanapun, bahwa skrip init.d akan keluar sebelum menjalankan tindakan mulai jika soket tidak ada. Ini karena panggilan ke pg_lsclusters akan gagal tanpa soket soket, yang pada gilirannya mencegah tindakan mulai dari pernah membuat soket soket.
Saya belum tahu apa solusi terbaik, tetapi jika saya memindahkan logika untuk membuat soket dari mulai aksi hingga sebelum panggilan ke pg_lsclusters, saya dapat memulai server setelah reboot tanpa masalah.
Berikut adalah bagian dari tindakan awal yang menangani pembuatan dir socket:
Saya akan memposting pembaruan jika akar penyebab ini menjadi jelas bagi saya, karena ini jelas bukan perilaku yang diharapkan.
TAMBAHAN:
Saya pikir alasan saya mengalami masalah ini adalah karena saya tidak memiliki nilai yang baik yang dikonfigurasi untuk unix_socket_directories . Pada 9.2 opsi konfigurasi ini dulunya adalah unix_socket_directory, yang saya hapus alih-alih beralih ke unix_socket_directories. Karena saya menetapkan nilai untuk unix_socket_directories, saya tidak punya masalah dengan permulaan server.
sumber
Saya punya beberapa masalah dengan file sockets, dalam kasus Anda /var/run/postgresql/.s.PGSQL.5432
pastikan direktori / var / run / postgresql ada dan dapat ditulis sebelum memulai postgresql untuk info lebih lanjut lihat diskusi ini .
juga, saat menghubungkan gunakan flag -h:
dan lihat apakah itu menyelesaikannya.
sumber
Ini sepertinya memperbaiki masalah di Ubuntu:
Edit postgresql.conf:
Sekarang lakukan
service postgresql start
sumber
Saya baru di PSQL tapi saya menyelesaikan masalah dengan mengedit start.conf Saya telah mengomentari pengaturan "otomatis" untuk mengelola server secara manual, tetapi perlu nilai: otomatis, manual atau dinonaktifkan.
EGD.
sumber
Di sisi saya skrip start up salah. File konfigurasi dipasang di /etc/postgresql/9.3/main tetapi skrip /usr/share/postgresql-common/init.d-functions mencari di
Ganti baris ini dengan
sumber
Semua,
setelah beberapa penggalian, saya menemukan (a) solusi di sini:
http://ubuntuforums.org/showthread.php?t=869080
Yang berisi instruksi ini:
Jalankan di terminal:
Sekarang server saya sudah aktif dan berjalan !!!
EDIT : setelah restart, server masih tidak berjalan ...
Pikiran mengapa saya perlu menjalankan ini dihargai!
sumber
/etc/postgresql/9.3/main/postgresql.conf