Kurulum Rehberleri

PostgreSQL Kurulumu ve Temel Ayarlar

PostgreSQL'i Windows, macOS, Ubuntu ve Docker'da kurup pgAdmin, rol ve veritabanı oluşturma ile temel psql komutlarıyla çalışmaya başlamanın yolu.

Aurora YazılımEditör ekibi 6 dk okuma
PostgreSQL Kurulumu ve Temel Ayarlar
PostgreSQL kurulumu nasıl yapılır?

PostgreSQL kurulumu için Windows'ta postgresql.org'daki resmî yükleyiciyi, macOS'ta Homebrew'u, Ubuntu'da apt paketini ya da Docker'da resmî postgres imajını kullanırsınız. Ardından postgres süper kullanıcısıyla bağlanıp uygulamanız için ayrı bir rol ve veritabanı oluşturur, bağlantıyı psql ya da pgAdmin ile doğrularsınız.

PostgreSQL Nedir, Neden Tercih Edilir?

PostgreSQL, kırk yıla yaklaşan geçmişi olan, açık kaynaklı ve ücretsiz bir ilişkisel veritabanı sistemidir. İşlem güvenliği (ACID), güçlü veri tipleri, JSONB desteği ve gelişmiş indeksleme seçenekleri sayesinde küçük projelerden yüksek trafikli uygulamalara kadar geniş bir yelpazede kullanılır.

Rezervasyon, stok, sipariş ya da ilan gibi tutarlılığın kritik olduğu verilerde PostgreSQL rahat bir seçimdir. Bir otel yazılımı ya da e-ticaret altyapısı gibi aynı kayda birden çok kişinin aynı anda dokunduğu sistemlerde işlem güvenliği bu yüzden önemlidir. Yerelde hızlıca PHP ve veritabanı denemek isteyenler için XAMPP kurulumu da pratik bir başlangıçtır. Benzer işlerde MySQL de sık kullanılır; iki sistemi karşılaştırmak isterseniz MySQL kurulumu rehberine göz atabilirsiniz.

Bu yazıda kurulumdan sonra ilk gün ihtiyaç duyacağınız her şeyi ele alıyoruz: rol ve veritabanı oluşturma, uzaktan bağlantı ayarları, yedekleme ve en sık karşılaşılan hata mesajları.

Kurulumdan Önce Gerekenler

Kuruluma başlamadan önce birkaç kararı netleştirmek sonradan yaşanacak sorunları azaltır. Özellikle canlı sunucuda hangi ana sürümü kullanacağınıza baştan karar verin; ana sürümler arası geçiş, yedek alıp geri yükleme ya da pg_upgrade gerektirir.

Yöntem seçimi de önemlidir. Geliştirme bilgisayarında Docker, projeler arasında farklı sürümleri çakışmadan çalıştırmanın en kolay yoludur. Canlı sunucuda ise işletim sisteminin paket yöneticisiyle kurulan servis; güvenlik güncellemelerini almak, logları izlemek ve otomatik başlatmayı yönetmek açısından daha öngörülebilir bir yapı sunar.

  • Yönetici (Windows) ya da sudo (macOS, Linux) yetkisi olan bir kullanıcı
  • Varsayılan 5432 portunun başka bir uygulama tarafından kullanılmıyor olması
  • Resmî sitede desteklenen güncel ana sürüm bilgisi: postgresql.org
  • Süper kullanıcı için güçlü, bir yere kaydettiğiniz bir parola
  • Docker ile kuracaksanız çalışan bir Docker kurulumu

İşletim Sistemine Göre Kurulum

Aşağıdaki yöntemlerin her biri resmî ya da resmî olarak önerilen kaynaklardan kurulum yapar. Komutlardaki sürüm yer tutucusunu kendi seçtiğiniz ana sürümle değiştirin.

Windows

postgresql.org'un Windows sayfasından EDB tarafından hazırlanan yükleyiciyi indirin. Sihirbaz sunucuyu, pgAdmin'i, komut satırı araçlarını ve Stack Builder'ı birlikte kurar; sizden postgres kullanıcısının parolasını, portu ve yerel ayarı ister.

Kurulumdan sonra psql komutunu her terminalde kullanabilmek için bin klasörünü PATH değişkenine ekleyin. Başlat menüsündeki SQL Shell (psql) kısayolu da aynı işi görür.

powershellPATH kontrolü ve sürüm doğrulama
# Klasör adı kurduğunuz ana sürüme göre değişir
$env:Path += ";C:\Program Files\PostgreSQL\<sürüm>\bin"
psql --version
psql -U postgres -h localhost

macOS (Homebrew)

Homebrew'da PostgreSQL sürüm numaralı paketlerle gelir. Önce mevcut paketleri listeleyin, ardından istediğiniz ana sürümü kurup servis olarak başlatın. Grafik arayüz tercih ederseniz Postgres.app da yaygın bir alternatiftir.

bash
brew search postgresql
brew install postgresql@<sürüm>
brew services start postgresql@<sürüm>
# Sürüm numaralı paketler PATH'e otomatik eklenmeyebilir;
# kurulum çıktısındaki echo 'export PATH=...' satırını uygulayın
psql --version
psql postgres

Ubuntu ve Debian

Dağıtımın kendi deposundaki paket çoğu proje için yeterlidir. Daha yeni bir ana sürüm gerekiyorsa postgresql.org'un anlattığı PGDG deposunu ekleyerek kurabilirsiniz.

bash
sudo apt update
sudo apt install postgresql postgresql-contrib
sudo systemctl enable --now postgresql
sudo systemctl status postgresql
sudo -u postgres psql -c "SELECT version();"

Docker

Geliştirme ortamı için en temiz yol resmî postgres imajıdır; bilgisayarınıza kalıcı bir servis kurmadan veritabanını açıp kapatabilirsiniz. Verinin kaybolmaması için mutlaka bir adlandırılmış birim (volume) bağlayın.

  • 18 ve sonrası resmî imajlarda birim /var/lib/postgresql yoluna bağlanır.
  • 17 ve öncesi imajlarda birimi /var/lib/postgresql/data yoluna bağlayın; imajın Docker Hub sayfasındaki notu kontrol edin.
bash
docker run -d --name pg \
  -e POSTGRES_PASSWORD=GucluBirParola \
  -p 5432:5432 \
  -v pgdata:/var/lib/postgresql \
  postgres:<sürüm>

docker exec -it pg psql -U postgres

Kullanıcı ve Veritabanı Oluşturma

Kurulumla birlikte gelen postgres rolü süper kullanıcıdır; uygulamanızı bu rolle bağlamak güvenlik açısından doğru değildir. Her proje için yalnızca kendi veritabanında yetkili ayrı bir rol açın.

PostgreSQL'de kullanıcı ile rol aynı kavramdır: LOGIN yetkisi olan rol kullanıcı gibi davranır. Veritabanının sahibi yaptığınız rol, o veritabanındaki public şemada tablo oluşturabilir.

sqlpsql içinde, postgres kullanıcısıyla
CREATE ROLE uygulama WITH LOGIN PASSWORD 'BurayaGucluParola';
CREATE DATABASE magaza OWNER uygulama ENCODING 'UTF8';

-- Salt okunur raporlama kullanıcısı
CREATE ROLE rapor WITH LOGIN PASSWORD 'BaskaGucluParola';
GRANT CONNECT ON DATABASE magaza TO rapor;
\c magaza
GRANT USAGE ON SCHEMA public TO rapor;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO rapor;
ALTER DEFAULT PRIVILEGES FOR ROLE uygulama IN SCHEMA public
  GRANT SELECT ON TABLES TO rapor;

En Çok Kullanılan psql Komutları

psql, PostgreSQL'in komut satırı istemcisidir. Ters eğik çizgiyle başlayan meta komutlar sunucuya SQL göndermez, istemcinin kendisi tarafından yorumlanır ve gezinmeyi çok hızlandırır.

KomutNe yapar?
\lVeritabanlarını listeler
\c magazamagaza veritabanına geçer
\dtGeçerli şemadaki tabloları listeler
\d urunlerTablonun kolonlarını ve indekslerini gösterir
\duRolleri ve yetkilerini listeler
\xGeniş satırları dikey gösterime çevirir
\timingSorgu sürelerini açar ya da kapatır
\?Tüm meta komutların yardımını açar
\qpsql'den çıkar
bashYeni rolle bağlanma
psql -h localhost -U uygulama -d magaza
# Bağlantı dizesiyle
psql "postgresql://uygulama@localhost:5432/magaza"

pgAdmin ile Grafik Arayüzden Yönetim

pgAdmin, PostgreSQL için resmî ve ücretsiz yönetim aracıdır. Windows yükleyicisiyle birlikte gelir; macOS ve Linux'ta pgadmin.org üzerinden ayrıca kurulur ya da Docker imajıyla çalıştırılır.

İlk açılışta Register > Server adımıyla yeni bir sunucu tanımlayın: Connection sekmesine host olarak localhost, port 5432, kullanıcı ve parolayı girin. Bağlandıktan sonra tabloları gezebilir, Query Tool ile sorgu çalıştırabilir, yedek alma ve geri yükleme işlemlerini menüden yapabilirsiniz.

Uzaktaki bir sunucuya bağlanacaksanız veritabanı portunu internete açmak yerine pgAdmin'in SSH tüneli seçeneğini kullanmak daha güvenlidir.

Uzaktan Bağlantı ve Temel Ayarlar

PostgreSQL varsayılan olarak yalnızca yerel bağlantıları dinler. Ayar dosyalarının yeri işletim sistemine ve sürüme göre değiştiği için önce psql içinden konumlarını öğrenin.

postgresql.conf dosyasındaki listen_addresses değeri dinlenecek adresleri, pg_hba.conf ise hangi istemcinin hangi yöntemle doğrulanacağını belirler. Parolalı bağlantılarda scram-sha-256 yöntemini kullanın ve izin verdiğiniz IP aralığını olabildiğince dar tutun.

  • shared_buffers: resmî dokümantasyon, ayrılmış bir sunucuda başlangıç için belleğin yaklaşık dörtte birini önerir.
  • max_connections: yüksek tutmak yerine uygulama tarafında bağlantı havuzu kullanın.
  • Yavaş sorguları bulmak için log_min_duration_statement ayarını açın ve EXPLAIN ANALYZE ile inceleyin.
sql
SHOW config_file;
SHOW hba_file;
SHOW data_directory;
confpg_hba.conf örnek satırı
# TYPE  DATABASE  USER       ADDRESS          METHOD
host    magaza    uygulama   203.0.113.10/32  scram-sha-256
bash
# pg_hba.conf değişikliği için yeniden yükleme yeterli
sudo systemctl reload postgresql
# listen_addresses değişikliği yeniden başlatma ister
sudo systemctl restart postgresql

Yedekleme ve Sık Karşılaşılan Hatalar

Kurulum biter bitmez otomatik yedekleme planlayın. pg_dump tek bir veritabanının tutarlı bir kopyasını alır; özel biçimdeki yedek pg_restore ile seçerek geri yüklenebilir. Yedeği aynı sunucuda değil, başka bir konumda saklayın.

Veritabanı performansı, uygulamanın genel hızını doğrudan etkiler. Sorgu süreleri, indeksler ve sunucu yanıtı birlikte ele alındığında sonuç alınır; bu bütünlüklü yaklaşımı hız ve performans yönetimi çalışmalarımızda uyguluyoruz.

HataOlası neden ve çözüm
Peer authentication failedUbuntu'da yerel soket bağlantısı peer yöntemini kullanır; -h localhost ekleyerek parolalı bağlanın.
Connection refusedServis çalışmıyor ya da port farklı; systemctl status postgresql ve port ayarını kontrol edin.
password authentication failedParola ya da kullanıcı adı yanlış; ALTER ROLE ile parolayı yenileyin.
psql tanınmıyorbin klasörü PATH'te değil; Windows'ta ortam değişkenine ekleyin.
permission denied for schema publicRol veritabanının sahibi değil; sahipliği verin ya da şema yetkisi tanımlayın.
bash
pg_dump -h localhost -U uygulama -F c -f magaza.dump magaza
pg_restore -h localhost -U uygulama -d magaza --clean magaza.dump

Sık Sorulan Sorular

01pgAdmin olmadan PostgreSQL kullanılabilir mi?

Evet. pgAdmin yalnızca bir yönetim arayüzüdür; sunucu ondan bağımsız çalışır. psql, kod editörlerinin veritabanı eklentileri ya da başka istemciler aynı işi görür.

02PostgreSQL mi MySQL mi seçmeliyim?

İki sistem de olgun ve güvenilirdir. Gelişmiş veri tipleri, JSONB ve karmaşık sorgular öne çıkıyorsa PostgreSQL, barındırma firmalarında hazır bulunması önemliyse MySQL çoğu zaman pratik gelir; karar projenin ihtiyacına göre verilmelidir.

03Python projemi PostgreSQL'e nasıl bağlarım?

En yaygın sürücü psycopg'dur; Django ve SQLAlchemy de bunu kullanır. Ortamınız hazır değilse önce Python kurulumu adımlarını tamamlayın, ardından sanal ortam içinde sürücüyü pip ile kurun.

04Ana sürüm yükseltmesi nasıl yapılır?

Ana sürümler arası geçişte veri dizini doğrudan kullanılamaz. Küçük veritabanlarında pg_dumpall ile yedek alıp yeni sürüme geri yüklemek, büyüklerde pg_upgrade aracı tercih edilir; her iki durumda da önce tam yedek alın.

PostgreSQL'i kurup ayrı rol, dar erişim kuralı ve düzenli yedekle çalıştırdığınızda sağlam bir temel atmış olursunuz. Veritabanı tasarımından sunucu kurulumuna kadar işi uçtan uca ele alan bir yazılım arıyorsanız Aurora çözümlerine göz atın ya da iletişim sayfasından bize ulaşın. Diğer adımlar için kurulum rehberleri kategorisine bakabilirsiniz.