PostgreSQL Kurulumu ve İlk Yapılandırma İşlemleri
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
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
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 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
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 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
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 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ı
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?
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
Ö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
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.







