PostgreSQL Kurulumu ve İlk Yapılandırma İşlemleri

PostgreSQL: Why this database is essential for your IT projects

PostgreSQL, açık kaynaklı ve gelişmiş özelliklere sahip bir nesne-ilişkisel veritabanı yönetim sistemidir. Web uygulamaları, kurumsal yazılımlar, finans sistemleri ve veri analizi projelerinde kullanılmaktadır.

PostgreSQL; Windows, Linux ve macOS işletim sistemlerine kurulabilir. Kurulum tamamlandıktan sonra veritabanı sunucusunun çalıştırılması, yönetici hesabının yapılandırılması, yeni veritabanlarının oluşturulması ve bağlantı güvenliğinin sağlanması gerekir.

Kurulum işlemleri kullanılan işletim sistemine, PostgreSQL sürümüne ve sunucu yapılandırmasına göre farklılık gösterebilir.

PostgreSQL Kurulumu İçin Sistem Gereksinimleri

Mastering PostgreSQL Architecture: 6 Powerful Steps to Optimize Performance & Scalability

PostgreSQL kurulumu için desteklenen bir işletim sistemi, yeterli disk alanı ve uygun sistem belleği gereklidir.

Küçük geliştirme ortamlarında PostgreSQL sınırlı donanım kaynaklarıyla çalışabilir. Ancak büyük veritabanları ve yoğun işlem gerektiren uygulamalarda daha yüksek işlemci, bellek ve disk performansına ihtiyaç duyulabilir.

Kurulumdan önce işletim sisteminin PostgreSQL sürümüyle uyumlu olup olmadığı kontrol edilmelidir.

Ayrıca kurulum ve servis yönetimi için gerekli yönetici yetkileri bulunmalıdır.

Windows Üzerine PostgreSQL Kurulumu

How to Install PostgreSQL and PgAdmin | Resagratia Data Analytics And Data Science Bootcamp

Windows işletim sisteminde PostgreSQL kurulumu, Windows için sunulan uygun kurulum paketleriyle gerçekleştirilebilir.

Yaygın yöntemlerden biri, EnterpriseDB tarafından sağlanan PostgreSQL kurulum aracını kullanmaktır.

Kurulum dosyası çalıştırıldıktan sonra kurulum dizini ve yüklenecek bileşenler seçilir.

Kurulum paketine bağlı olarak PostgreSQL Server, pgAdmin ve komut satırı araçları gibi bileşenler bulunabilir.

Kurulum sihirbazındaki seçenekler, kullanılan PostgreSQL sürümüne göre değişebilir.

PostgreSQL Kurulum Bileşenleri

PostgreSQL Installation Guide | The Full-Stack Blog

Windows kurulum paketlerinde farklı bileşenler seçilebilir.

PostgreSQL Server, veritabanı hizmetinin çalışmasını sağlayan temel bileşendir.

pgAdmin, PostgreSQL veritabanlarının grafiksel arayüz üzerinden yönetilmesini sağlar.

Command Line Tools bileşeni, psql gibi komut satırı araçlarını içerebilir.

Stack Builder ise bazı Windows kurulumlarında ek yazılımların ve bileşenlerin kurulmasına yardımcı olan isteğe bağlı bir araçtır.

PostgreSQL Veri Dizini Nasıl Belirlenir?

PostgreSQL, veritabanı dosyalarını belirli bir veri dizininde saklar.

Bu dizin, veritabanı tabloları ve PostgreSQL'in çalışması için gerekli çeşitli sistem dosyalarını içerir.

Windows kurulumunda veri dizini kurulum sihirbazı üzerinden belirlenebilir.

Veri dizininin yeterli depolama alanına sahip bir konumda bulunması gerekir.

Bu dizindeki dosyalar, PostgreSQL çalışırken normal dosyalar gibi elle değiştirilmemelidir.

Veritabanı dosyalarının yönetimi PostgreSQL'in kendi araçları aracılığıyla gerçekleştirilmelidir.

PostgreSQL Yönetici Parolası Oluşturma

PostgreSQL: Install

Windows kurulumunda genellikle postgres adlı veritabanı süper kullanıcısı için parola belirlenir.

Bu hesap, PostgreSQL sunucusunda geniş yönetim yetkilerine sahiptir.

Parolanın güçlü ve benzersiz olması önemlidir.

Postgres süper kullanıcısı, uygulamaların günlük veritabanı bağlantıları için kullanılmamalıdır.

Bunun yerine her uygulama için gerekli yetkilere sahip ayrı kullanıcılar oluşturulmalıdır.

PostgreSQL Port Ayarları

Windows setup

PostgreSQL'in varsayılan TCP bağlantı noktası 5432'dir.

Windows kurulumunda bağlantı noktası genellikle kurulum sihirbazından belirlenebilir.

Aynı bilgisayarda birden fazla PostgreSQL sunucusu çalıştırılacaksa farklı portlar kullanılması gerekebilir.

Yalnızca yerel uygulamalar tarafından kullanılacak bir PostgreSQL sunucusunun internete açılması gerekli değildir.

Uzak bağlantılar gerekiyorsa ağ erişimi ve güvenlik duvarı kuralları ayrıca yapılandırılmalıdır.

PostgreSQL Kurulumunun Kontrol Edilmesi

Kurulum tamamlandıktan sonra PostgreSQL istemcisinin kullanılabilirliği kontrol edilebilir.

Terminal veya komut istemcisinde aşağıdaki komut çalıştırılır:

psql --version

Bu komut, psql istemcisinin sürümünü gösterir.

Ancak istemcinin kurulu olması, PostgreSQL sunucusunun çalıştığını tek başına doğrulamaz.

Sunucuya bağlantı kurmak için aşağıdaki komut kullanılabilir:

psql -U postgres -h localhost -d postgres

Komut, yerel PostgreSQL sunucusundaki postgres veritabanına bağlanmayı dener.

Windows sistemlerinde psql aracının PATH ortam değişkenine eklenmesi gerekebilir.

Linux Üzerine PostgreSQL Kurulumu

Install PostgreSQL 16, 15, 14 on Ubuntu 24.04, 22.04, 20.04 - See how to set up and manage PostgreSQL server & client

PostgreSQL, Linux dağıtımlarında paket yöneticileri aracılığıyla kurulabilir.

Kurulum komutları kullanılan Linux dağıtımına göre değişmektedir.

Ubuntu ve Debian tabanlı sistemlerde APT paket yöneticisi kullanılabilir.

Red Hat tabanlı sistemlerde ise DNF veya dağıtıma uygun diğer paket yönetim araçları kullanılmaktadır.

Kurulacak PostgreSQL sürümü, işletim sisteminin paket depolarına veya yapılandırılan PostgreSQL depolarına bağlıdır.

Ubuntu'da PostgreSQL Kurulumu

Ubuntu üzerinde PostgreSQL kurulumu için terminal açılır.

Öncelikle paket listesi güncellenir.

sudo apt update

Ardından PostgreSQL paketi yüklenir.

sudo apt install postgresql

Bu komut, yapılandırılmış paket depolarındaki PostgreSQL sürümünü yükler.

Kurulum tamamlandıktan sonra servis durumu kontrol edilebilir.

sudo systemctl status postgresql

Servis çalışmıyorsa aşağıdaki komut kullanılabilir:

sudo systemctl start postgresql

Ubuntu ve Debian sistemlerinde PostgreSQL kümelerinin yönetimi kullanılan paketleme yapısına bağlı olarak farklılık gösterebilir.

Linux'ta PostgreSQL'e İlk Bağlantı

Ubuntu ve Debian tabanlı sistemlerde PostgreSQL kurulumu sırasında genellikle postgres adlı bir sistem hesabı oluşturulur.

Yerel yönetim bağlantısı için aşağıdaki komut kullanılabilir:

sudo -u postgres psql

Bu komut, postgres sistem hesabı üzerinden psql aracını başlatır.

Bağlantı başarılı olduğunda PostgreSQL komut satırı açılır.

Burada SQL komutları çalıştırılabilir.

Komut satırından çıkmak için aşağıdaki komut kullanılır:

\q

PostgreSQL'de Yönetici Parolası Belirleme

PostgreSQL'de postgres veritabanı rolüne parola atanabilir.

Yetkili bir PostgreSQL oturumunda aşağıdaki psql komutu kullanılabilir:

\password postgres

Bu komut, postgres rolünün parolasını etkileşimli olarak değiştirmeyi sağlar.

Parolanın komut satırında açık biçimde yazılmasını gerektirmediğinden tercih edilebilir.

Ancak parola belirlenmesi, tek başına bütün bağlantı yöntemlerinin parola kullanacağı anlamına gelmez.

Kimlik doğrulama yöntemi, PostgreSQL'in bağlantı güvenliği yapılandırmasına bağlıdır.

PostgreSQL'de Yeni Veritabanı Oluşturma

PostgreSQL kurulumu tamamlandıktan sonra yeni bir veritabanı oluşturulabilir.

Örneğin forum adlı bir veritabanı oluşturmak için aşağıdaki SQL komutu kullanılır:

CREATE DATABASE forum;

Bu komut, forum adında yeni bir veritabanı oluşturur.

Mevcut veritabanlarını görüntülemek için psql içerisinde aşağıdaki komut kullanılabilir:

\l

Yeni oluşturulan veritabanına bağlanmak için:

\connect forum

Bu komutlar psql aracına özgüdür ve standart SQL komutları değildir.

PostgreSQL'de Kullanıcı Oluşturma

PostgreSQL'de kullanıcı hesapları, LOGIN yetkisine sahip roller olarak yönetilmektedir.

Örneğin bir web uygulaması için ayrı kullanıcı oluşturulabilir:

CREATE ROLE forum_user
WITH LOGIN PASSWORD 'GucluVeBenzersizBirParola';

Bu komut, forum_user adlı bir rol oluşturur.

Gerçek sistemlerde güçlü ve benzersiz parolalar kullanılmalıdır.

Ayrıca uygulama kullanıcılarına süper kullanıcı yetkisi verilmemelidir.

PostgreSQL Veritabanı Yetkilendirme

Yeni oluşturulan kullanıcıya veritabanına bağlanma yetkisi verilebilir.

GRANT CONNECT ON DATABASE forum TO forum_user;

Veritabanı içindeki şemalar ve tablolar için ayrıca yetkilendirme gerekebilir.

Örneğin forum veritabanına bağlıyken public şeması için aşağıdaki komut kullanılabilir:

GRANT USAGE ON SCHEMA public TO forum_user;

Kullanıcının public şemasında yeni tablolar oluşturması gerekiyorsa CREATE yetkisi de verilebilir:

GRANT CREATE ON SCHEMA public TO forum_user;

Bu örnekteki yetkiler, uygulamanın ihtiyaçlarına göre düzenlenmelidir.

Mevcut tablolara erişim ve işlem yetkileri ayrıca tanımlanabilir.

PostgreSQL'de Tablo Oluşturma

PostgreSQL'de yeni bir tablo oluşturmak için CREATE TABLE komutu kullanılır.

Örneğin kullanıcı bilgilerini saklamak amacıyla aşağıdaki tablo oluşturulabilir:

CREATE TABLE kullanicilar (
    id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    kullanici_adi VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Bu örnekte ID alanı her kayıt için benzersiz numara üretir.

Kullanıcı adı ve e-posta alanları metin bilgilerini saklar.

Kayıt tarihi alanı, yeni kayıt oluşturulduğunda geçerli tarih ve saati kullanabilir.

Tabloları görüntülemek için psql üzerinde aşağıdaki komut kullanılabilir:

\dt

PostgreSQL'e Veri Ekleme ve Sorgulama

Oluşturulan tabloya yeni kayıt eklemek için INSERT komutu kullanılır.

INSERT INTO kullanicilar (kullanici_adi, email)
VALUES ('ahmet', 'ahmet@example.com');

Bu komut, kullanıcılar tablosuna yeni bir kayıt ekler.

Kayıtları görüntülemek için SELECT komutu kullanılabilir.

SELECT * FROM kullanicilar;

Belirli bir kullanıcıyı sorgulamak için WHERE koşulu eklenebilir.

SELECT * FROM kullanicilar
WHERE kullanici_adi = 'ahmet';

Bu sorgu, belirtilen kullanıcı adına sahip kayıtları getirir.

pgAdmin Kurulumu ve Kullanımı

pgAdmin 4 Documentation

pgAdmin, PostgreSQL veritabanlarının grafiksel arayüz üzerinden yönetilmesini sağlayan açık kaynaklı bir araçtır.

pgAdmin kullanılarak sunucu bağlantıları oluşturulabilir, veritabanları görüntülenebilir ve SQL sorguları çalıştırılabilir.

Ayrıca tablo yapıları, roller ve diğer veritabanı nesneleri yönetilebilir.

Windows kurulum paketlerinde pgAdmin isteğe bağlı bir bileşen olarak sunulabilir.

Linux sistemlerde ise pgAdmin'in ayrıca kurulması gerekebilir.

PostgreSQL Yapılandırma Dosyası

Step 3: Configure PostgreSQL server parameters | Arts Management Systems

PostgreSQL'in sunucu ayarları, postgresql.conf adlı yapılandırma dosyası üzerinden yönetilebilir.

Bu dosyada bağlantı ayarları, bellek kullanımı, günlük kayıtları ve çeşitli sunucu parametreleri bulunur.

Dosyanın konumu işletim sistemine ve kurulum yöntemine göre değişebilir.

Aktif yapılandırma dosyasının konumunu öğrenmek için yetkili bir SQL oturumunda aşağıdaki sorgu çalıştırılabilir:

SHOW config_file;

Yapılandırma dosyasında yapılan bazı değişiklikler yeniden yükleme ile uygulanabilirken bazıları sunucunun yeniden başlatılmasını gerektirir.

PostgreSQL'de Uzak Bağlantı Ayarları

PostgreSQL varsayılan yapılandırmada genellikle yalnızca yerel bağlantıları dinler.

Uzak bağlantılar gerekiyorsa listen_addresses parametresi uygun şekilde yapılandırılmalıdır.

Örneğin belirli bir sunucu IP adresi üzerinden bağlantı kabul etmek için:

listen_addresses = '192.0.2.10'

Bu IP adresi yalnızca örnektir; gerçek sunucu adresiyle değiştirilmelidir.

Bütün ağ arayüzlerini dinlemek için yıldız karakteri kullanılabilse de gereksiz ağ erişiminin açılması güvenlik riskleri oluşturabilir.

Bu nedenle yalnızca ihtiyaç duyulan arayüzlerin dinlenmesi tercih edilmelidir.

pg_hba.conf Dosyası Nedir?

pg_hba.conf dosyası, PostgreSQL istemcilerinin hangi yöntemlerle kimlik doğrulaması yapacağını belirleyen yapılandırma dosyasıdır.

Bu dosyada bağlantı türü, veritabanı, kullanıcı, istemci adresi ve kimlik doğrulama yöntemi tanımlanabilir.

Örneğin belirli bir IP adresinden parola doğrulamasıyla bağlantıya izin veren bir kural şu şekilde yazılabilir:

host forum forum_user 192.0.2.25/32 scram-sha-256

Bu örnekteki IP adresi dokümantasyon amaçlıdır.

Gerçek sistemlerde yalnızca güvenilen istemcilerin adresleri kullanılmalıdır.

Ayrıca sunucunun ilgili ağ arayüzünü dinlemesi ve güvenlik duvarının bağlantıya izin vermesi gerekir.

PostgreSQL Güvenlik Duvarı Ayarları

PostgreSQL'in varsayılan bağlantı noktası 5432'dir.

Uzak erişim gerekiyorsa güvenlik duvarı kurallarının uygun biçimde düzenlenmesi gerekebilir.

Ancak 5432 numaralı bağlantı noktasının bütün internete açılması önerilmez.

Bağlantıların yalnızca yetkili uygulama sunucularından veya güvenilen ağlardan kabul edilmesi daha güvenli bir yaklaşımdır.

Uygun durumlarda TLS bağlantıları veya özel ağ çözümleri kullanılabilir.

PostgreSQL Servisini Yeniden Başlatma

Yapılandırma değişikliklerinden sonra PostgreSQL servisinin yeniden yüklenmesi veya başlatılması gerekebilir.

Ubuntu üzerinde aşağıdaki komut kullanılabilir:

sudo systemctl restart postgresql

Bu komut PostgreSQL servisini yeniden başlatır ve mevcut bağlantıların kesilmesine neden olabilir.

Yalnızca yeniden yükleme gerektiren ayarlarda aşağıdaki komut kullanılabilir:

sudo systemctl reload postgresql

Bazı yapılandırma değişiklikleri yeniden başlatma gerektirdiğinden ilgili parametrenin özellikleri kontrol edilmelidir.

PostgreSQL Veritabanı Yedekleme

File:PostgreSQL dump restore.svg - Wikimedia Commons

PostgreSQL'de veritabanı yedekleme işlemleri için pg_dump aracı kullanılabilir.

Örneğin forum veritabanının özel biçimli yedeğini oluşturmak için:

pg_dump -U postgres -h localhost -Fc -f forum_yedek.dump forum

Bu komut, gerekli erişim izinleri bulunduğunda veritabanını bir yedek dosyasına aktarır.

Özel biçimli yedekler pg_restore aracıyla geri yüklenebilir.

pg_restore -U postgres -h localhost -d forum forum_yedek.dump

Geri yükleme işlemi mevcut veritabanı nesneleriyle çakışabileceğinden hedef veritabanının durumu önceden kontrol edilmelidir.

Düzenli yedekleme ve geri yükleme testleri, veri güvenliğinin önemli parçalarıdır.

PostgreSQL Kurulumunda Karşılaşılan Hatalar

windows - Postgresql: Connection refused on port 5432 - Stack Overflow

PostgreSQL kurulumu sırasında veya sonrasında çeşitli bağlantı hataları görülebilir.

Connection refused hatası, PostgreSQL servisinin çalışmaması, yanlış bağlantı adresi veya bağlantı noktası nedeniyle oluşabilir.

Password authentication failed hatası, yanlış parola veya kimlik doğrulama yapılandırmasıyla ilgili olabilir.

No pg_hba.conf entry hatası ise bağlantıya uygun bir erişim kuralı bulunmadığını gösterebilir.

Port çakışmaları da PostgreSQL servisinin başlatılmasını engelleyebilir.

Sorunların çözümünde servis durumu, yapılandırma dosyaları ve PostgreSQL günlük kayıtları incelenmelidir.

PostgreSQL Kurulumundan Sonra Yapılması Gerekenler

PostgreSQL kurulduktan sonra sunucunun güvenli ve kararlı çalışması için ilk yapılandırma işlemleri tamamlanmalıdır.

Yönetici hesabı korunmalı ve uygulamalar için ayrı roller oluşturulmalıdır.

Veritabanı erişim yetkileri ihtiyaçlara göre sınırlandırılmalıdır.

Uzak bağlantılar yalnızca gerekli olduğunda etkinleştirilmeli ve güvenlik duvarı kuralları düzenlenmelidir.

Düzenli yedekleme planı oluşturulmalı, geri yükleme işlemleri test edilmeli ve PostgreSQL güncellemeleri takip edilmelidir.

Performans ayarları ise sunucunun donanım kaynaklarına ve uygulamanın gerçek iş yüküne göre yapılandırılmalıdır.

PostgreSQL Kurulumu Neden Önemlidir?

PostgreSQL'in doğru kurulması ve yapılandırılması, veritabanı kullanan uygulamaların güvenilir şekilde çalışabilmesi için gereklidir.

Kurulum sürecinde sunucu hizmetinin başlatılması, kullanıcı rollerinin oluşturulması, veritabanı yetkilerinin belirlenmesi ve bağlantı güvenliğinin sağlanması temel işlemler arasındadır.

PostgreSQL, Windows ve Linux sistemlerinde kullanılabildiği gibi uygun sunucu altyapılarında farklı programlama dilleriyle geliştirilen uygulamalara da hizmet verebilir.

Doğru yapılandırılmış bir PostgreSQL sunucusu, küçük web projelerinden kapsamlı kurumsal yazılımlara kadar çeşitli uygulamaların veri yönetimi ihtiyaçlarını karşılayabilir.

 


Alıntı