postgresql bağlantı noktası karışıklığı 5433 veya 5432?


128

OSX üzerine postgresql kurdum. Psql çalıştırdığımda

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5433"?

Ancak / etc / services'den

postgresql      5432/udp    # PostgreSQL Database
postgresql      5432/tcp    # PostgreSQL Database
#                          Tom Lane <tgl@sss.pgh.pa.us>
pyrrho          5433/tcp    # Pyrrho DBMS
pyrrho          5433/udp    # Pyrrho DBMS

5433 pyrrho tarafından işgal edilmiş, 5432 syf. İle bağlantı kurabilirim

psql -p 5432

ama psql neden 5433 olduğunu düşünüyor ve psql'nin varsayılan olarak doğru yerde görünmesini nasıl sağlayabilirim?


5
Ortam değişkeninin PGPORTtanımlanıp tanımlanmadığını kontrol edin : postgresql.org/docs/current/static/libpq-envars.html
a_horse_with_no_name

Yanıtlar:


187

/etc/servicessadece tavsiye niteliğindedir, iyi bilinen bağlantı noktalarının bir listesidir. Bu, o bağlantı noktasında gerçekten herhangi bir şeyin çalıştığı veya adlandırılmış hizmetin o bağlantı noktasında çalışacağı anlamına gelmez.

PostgreSQL durumunda, eğer varsa, 5432 numaralı bağlantı noktasını kullanmak normaldir. Değilse, çoğu yükleyici bir sonraki ücretsiz bağlantı noktasını, genellikle 5433'ü seçecektir.

netstatAracı kullanarak gerçekte neyin çalıştığını görebilirsiniz (OS X, Windows ve Linux'ta mevcuttur, komut satırı sözdizimi üçü arasında değişiklik gösterir).

Bu, Mac OS X sistemlerinde, farklı PostgreSQL paketlerinin korkunç karmaşası nedeniyle daha da karmaşık hale geliyor - Apple'ın OS'de yerleşik olan eski PostgreSQL sürümü, Postgres.app, Homebrew, Macports, EnterpriseDB yükleyici vb.

Sonuçta, kullanıcının Pg'yi kurması ve bir sunucuyu tek bir paketten başlatması, ancak psqlve libpqistemcisini farklı bir paketten kullanmasıdır. Tipik olarak bu, Postgres.app veya homebrew Pg çalıştırdıklarında psqlve işletim sistemi ile birlikte gelenlere bağlanırken meydana gelir . Bunların bazen farklı varsayılan bağlantı noktaları olmasının yanı sıra, Mac OS X ile birlikte gönderilen Pg'nin farklı bir varsayılan unix soket yolu vardır , bu nedenle sunucu aynı bağlantı noktasında çalışıyor olsa bile aynı unix soketini dinlemeyecektir.

Çoğu Mac kullanıcısı, yalnızca tcp / ip kullanarak bu sorunu çözer psql -h localhost. Ayrıca gerekirse bir bağlantı noktası da belirtebilirsiniz, örn psql -h localhost -p 5433. Birden fazla PostgreSQL örneğiniz çalışıyor olabilir, bu nedenle select version()ve kullanarak doğru olana bağlandığınızdan emin olun SHOW data_directory;.

Ayrıca bir unix soket dizini de belirtebilirsiniz; unix_socket_directoriesBağlanmak istediğiniz PostgreSQL örneğinin ayarını kontrol edin ve bunu ile belirtin psql -h, örn psql -h /tmp.

Bir temizlikçi çözüm sisteminizi düzeltmektir PATHböylece psqlve libpqaslında çalışan PostgreSQL ile ilişkili ilk bulunanlarla ilgili olduğunu PATH. Bunun ayrıntıları, Mac OS X sürümünüze ve hangi Pg paketlerini kurduğunuza bağlıdır. Mac kullanmıyorum ve şu anda mevcut olandan daha fazla zaman harcamadan o tarafta daha fazla ayrıntı sunamıyorum.


24

OSX'te hızlı yanıt, ortam değişkenlerinizi ayarlayın.

>export PGHOST=localhost

>export PGPORT=5432

Veya ihtiyacınız olan her şeye.


16

Postgres'in varsayılan bağlantı noktası genellikle şurada yapılandırılır:

sudo vi /<path to your installation>/data/postgresql.conf

Ubuntu'da bu şunlar olabilir:

sudo vi /<path to your installation>/main/postgresql.conf

portBu dosyada ara .


BigSQL dağıtımı olan Mac OSX'te şurada:~/PostgreSQL/data/pg96
Shane

7

Sayesinde @a_horse_with_no_name 'ın açıklama , ben pg_env.sh içinde 5432 benim PGPORT tanımını değiştirdi. Bu benim için sorunu çözdü. Postgres'in hizmeti 5432'de barındırırken neden 5433 olarak ayarladığını bilmiyorum.


7

Bunun olmasının en yaygın nedenlerinden biri, mevcut bir kurulumun hizmetini durdurmadan yeni bir PostgreSQL sürümü kurmanız gibi görünüyor. Bu benim de özel bir baş ağrımdı. Kurmadan veya yükseltmeden önce, özellikle OS X'te ve Enterprise DB'den tek tıklamayla yükleyiciyi kullanmadan önce, devam etmeden önce eski kurulumun durumunu kontrol ettiğinizden emin olun.


Evet, postgresql-9.5'i 9.4 zaten kuruluyken
kurduk

Uzun zamandır 5432 ve 5433 kullandım, 5436'yı gördüm ama sadece birinin yaratıcılık mı yoksa farklı işletim sistemlerinde varsayılan mı olduğu hakkında hiçbir fikrim yok.
Deil

3

Ben de bu sorunla karşılaştım, aynı anda çalışan iki postgres sunucum olduğu ortaya çıktı. Bunlardan birini kaldırdım ve bağlantı noktasını tekrar 5432 olarak değiştirdim ve şimdi iyi çalışıyor.


2

Benim için de pgAdmin 4 üzerinde Mac OS High Sierra tıklandığında, PostrgreSQL10 altında veritabanını Sunucular sol sütunda, ardından Properties sekmesi, gösterdi 5433 altında bağlantı noktası olarak Bağlantı . (Nedenini bilmiyorum, çünkü kurulum sırasında 5432'yi seçtim). Her neyse, Özellikler sekmesinin altındaki Düzenle simgesine tıkladım, bunu 5432 olarak değiştirdim , kaydettim ve bu sorunu çözdü. Şekle gidin.


Tüm bunlar 5432'de zaten çalışan sunucuya bağlanmanıza izin verir, bu yüzden bunu yaptıktan sonra bağlanabilirsiniz. Doğru belirttiğiniz gibi, sunucu kurulumunuz başına 5432 üzerinde çalışıyordu.
Shane
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.