PostgreSQL Veritabanı Yönetimi ve Kullanımı
PostgreSQL, güçlü bir, son derece ölçeklenebilir ve standartlara uygun açık kaynak ilişkisel veritabanı yönetim sistemi olup, geliştirici topluluğu arasında oldukça popülerdir. ServBay, macOS ve Windows'u destekleyen bir yerel Web geliştirme ortamı olarak PostgreSQL’i yerleşik şekilde sunarak kurulum ve yönetim süreçlerini büyük ölçüde kolaylaştırır.
Bu makale, ServBay ortamında PostgreSQL’i etkin bir şekilde yönetmek ve kullanmak isteyen geliştiriciler için rehber niteliğindedir. Kurulumdan yapılandırmaya, günlük operasyonlardan yedekleme ve geri yüklemeye, performans optimizasyonundan güvenlik yönetimine kadar tüm temel konuları kapsamaktadır.
PostgreSQL’in Kurulumu ve Yapılandırılması
ServBay, PostgreSQL de dahil olmak üzere yazılım paketlerini yönetmek için kullanıcı dostu bir grafik arayüz sağlar.
PostgreSQL’in Kurulumu
- ServBay uygulamasını açın.
- Sol navigasyon menüsünden
Paketler
seçeneğine tıklayın. - Paketler listesinde
PostgreSQL
'i bulun. - Dilediğiniz PostgreSQL sürümünü seçin (ServBay, PostgreSQL 10’dan 17’ye kadar birden çok versiyonu destekler).
- Kuruluma başlamak için yükle butonuna tıklayın.
Görsel: ServBay üzerinden PostgreSQL sürümü seçimi ve kurulumu
PostgreSQL Hizmetinin Başlatılması, Durdurulması ve Yönetimi
Kurulum tamamlandıktan sonra, PostgreSQL servisinin çalışma durumunu ServBay’in yönetim paneli ya da servbayctl
komut satırı aracı üzerinden yönetebilirsiniz.
ServBay Yönetim Panelini Kullanma
- ServBay uygulamasını açın.
- Sol navigasyon menüsünden
Paketler
seçeneğine tıklayın. - Kurulu PostgreSQL sürümünü bulun.
- Paket yanındaki aç/kapat anahtarları üzerinden hizmeti başlatabilir, durdurabilir veya yeniden başlatabilirsiniz.
servbayctl
Komut Satırı Aracını Kullanma
servbayctl
, ServBay’in tüm bileşenlerini yönetmek için sağlam bir komut satırı arayüzü sunar.
bash
# Belirli bir PostgreSQL sürümünü başlatın (örneğin PostgreSQL 16)
servbayctl start postgresql 16
# Belirli bir PostgreSQL sürümünü durdurun
servbayctl stop postgresql 16
# Belirli bir PostgreSQL sürümünü yeniden başlatın
servbayctl restart postgresql 16
# Belirli bir PostgreSQL sürümünün durumunu görüntüleyin
servbayctl status postgresql 16
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Not: Komutlardaki sürüm numarası (16
gibi), ServBay üzerinden kurduğunuz PostgreSQL sürümü ile aynı olmalıdır.
PostgreSQL’i Yapılandırma
ServBay, PostgreSQL yapılandırmasını kolayca değiştirmenizi sağlar. Doğru yapılandırma, veritabanının performansını artırmak, güvenliği sağlamak ve sistem kaynaklarını etkin kullanmak için hayati öneme sahiptir.
ServBay, PostgreSQL servisinin yapılandırması için güçlü ve görsel bir arayüz sunar. Alternatif olarak doğrudan yapılandırma dosyalarını düzenleyebilirsiniz. ServBay arayüzünden veya elle dosya düzenleme yolu ile PostgreSQL’in yapılandırma parametrelerini nasıl değiştireceğiniz ve optimize edeceğiniz hakkında detaylı bilgi için PostgreSQL yapılandırmasını değiştirme başvurusunu kullanabilirsiniz.
PostgreSQL Veritabanına Bağlantı Kurma
Veritabanına bağlantı, PostgreSQL ile çalışmanın ilk adımıdır. Komut satırı aracı psql
veya pgAdmin gibi grafiksel araçlarla ServBay üzerinde çalışan PostgreSQL’e erişebilirsiniz.
ServBay’de PostgreSQL’e başlıca iki şekilde bağlanabilirsiniz: TCP/IP bağlantısı (harici araçlar veya servisler arası bağlantılar için) ve yerel Socket bağlantısı (ServBay içinde önerilen, hem daha hızlı hem de daha güvenlidir).
Bağlantı Bilgilerinin Alınması
Bağlanmadan önce, PostgreSQL kullanıcı adınızı ve parolanızı bilmeniz gerekir. ServBay kurulum veya ilk yapılandırma sırasında genelde varsayılan kimlik bilgilerini belirler; özellikle varsayılan kullanıcı (postgres
) ya da oluşturduğunuz başka bir kullanıcı için bu bilgileri ServBay’in yönetim panelinde bulabilirsiniz.
Komut Satırı Aracı psql
ile Bağlantı
psql
, PostgreSQL’in resmi interaktif komut satırı istemcisidir.
TCP/IP bağlantısını kullanmak: Bu yöntem, ağ üzerinden (örneğin
localhost
veya diğer IP adresleri) bağlantı kurar. ServBay’de PostgreSQL’in varsayılan portu5432
'dir.bashpsql -U your_username -h localhost -d your_database -p 5432
1your_username
yerine veritabanı kullanıcı adınızı,your_database
yerine bağlanacağınız veritabanı adını yazın.Yerel Socket bağlantısını kullanmak (yalnızca macOS): ServBay, macOS’ta PostgreSQL’i yerel Unix Domain Socket ile konfigüre eder, bu sayede ağ katmanı atlanır, performans ve güvenlik artar. Socket dosyası genellikle ServBay’in geçici dizininde yer alır.
macOS:
bashpsql -U your_username -h /Applications/ServBay/tmp -d your_database
1your_username
ile kullanıcı adınızı,your_database
ile veritabanı adını girin./Applications/ServBay/tmp
ServBay’de PostgreSQL Socket’in varsayılan yoludur.Windows: Windows sürümünde TCP/IP bağlantısı kullanılır, yukarıdaki TCP/IP örneğini uygulayın.
Grafiksel Araç pgAdmin ile Bağlantı
pgAdmin, PostgreSQL için yaygın bir açık kaynak yönetim aracıdır ve kapsamlı özellikler sunar.
- pgAdmin’i yükleyin: ServBay’in içinde yer almıyorsa pgAdmin resmi sitesinden indirip kurabilirsiniz.
- pgAdmin’i açın.
- Yeni sunucu bağlantısı oluşturun:
Add New Server
seçeneğine tıklayın. - Bağlantı bilgilerini girin:
- General sekmesi: Bağlantı adı girin (örn.
ServBay PostgreSQL
). - Connection sekmesi:
- Hostname/adres:
localhost
- Port:
5432
- Maintenance database: Genellikle
postgres
- Username: ServBay panelinden aldığınız kullanıcı adı (örn.
postgres
) - Password: ServBay panelinden aldığınız parola
- Hostname/adres:
- SSL mode: Gereksiniminize göre seçin (çoğu durumda
Prefer
veyaRequire
daha güvenlidir, ancak ServBay’de varsayılan olarakAllow
veyaDisable
da çalışabilir; ServBay’in SSL yapılandırmasına göre hareket edin).
- General sekmesi: Bağlantı adı girin (örn.
Save
butonuna tıklayarak veritabanı sunucusuna bağlanın.
Temel Veritabanı Yönetim İşlemleri
PostgreSQL’e bağlandıktan sonra çeşitli yönetim işlemlerini gerçekleştirebilirsiniz.
Veritabanı ve Kullanıcı Listeleme
psql
komut satırı aracında, mevcut veritabanlarını ve kullanıcıları görmek için özel komutları (\
ile başlar) kullanabilirsiniz:
- Tüm veritabanlarını listele:sql
\l
1 - Tüm kullanıcıları (rolleri) listele:sql
\du
1
Veritabanı ve Kullanıcı Oluşturma
Yeni veritabanları ve kullanıcılar oluşturmak, ayrıca yetki tanımlamak için SQL komutlarını kullanabilirsiniz.
Yeni bir veritabanı oluşturmak:
sqlCREATE DATABASE servbay_demo_db;
1Projeyle alakalı, açıklayıcı bir veritabanı adı seçmeniz önerilir.
Yeni kullanıcı (rol) oluşturmak ve parola belirlemek:
sqlCREATE USER servbay_user WITH PASSWORD 'a_strong_password';
1servbay_user
yerine istediğiniz kullanıcı adını,a_strong_password
yerine güçlendirilmiş bir parola girin.Kullanıcıya veritabanı yetkileri vermek:
sqlGRANT ALL PRIVILEGES ON DATABASE servbay_demo_db TO servbay_user;
1Bu komut,
servbay_user
kullanıcısınaservbay_demo_db
veritabanındaki tüm yetkileri tanımlar. Güvenlik açısından, kullanıcılara yalnızca ihtiyaçları kadar yetki vermeye özen gösterin.
PostgreSQL Root Kullanıcı Parolasını Sıfırlama
PostgreSQL’in root kullanıcısı (genellikle postgres
) parolasını unuttuysanız, ServBay üzerinden kolayca sıfırlayabilirsiniz. Genelde ServBay panelinde ilgili seçenek bulunur; karmaşık komutlar veya dosya düzenlemeye gerek yoktur. Ayrıntılı talimatlar için ServBay’in arayüzü ve dokümantasyonuna göz atın.
Veritabanı Yedekleme ve Geri Yükleme
Düzenli yedekleme, veri güvenliği için kritik öneme sahiptir. ServBay üzerinde, PostgreSQL’in standart araçları olan pg_dump
ve pg_restore
kullanılabileceği gibi, ServBay’in yerleşik yedekleme özelliği de mevcuttur.
Manuel Yedekleme için pg_dump
Kullanımı
pg_dump
, PostgreSQL veritabanının tüm içeriğini dışa aktarmak için kullanılır.
Yedek dosyanızı ServBay’in önerdiği yedekleme klasöründe saklayın:
macOS:
bash
/Applications/ServBay/backup/postgresql
1
Windows:
cmd
C:\ServBay\backup\postgresql
1
Bir veritabanını yedeklemek için örnek komut:
macOS:
bash
pg_dump -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
Windows:
cmd
pg_dump -U your_username -d your_database -F c -b -v -f C:\ServBay\backup\postgresql\your_database_backup.dump
1
-U your_username
: Bağlanılacak veritabanı kullanıcı adı-d your_database
: Yedeklenecek veritabanı adı-F c
: Çıktıyı özel arşiv formatında üretir (tavsiye edilir, esnek geri yükleme desteği sunar)-b
: Büyük nesneleri (Blob) dâhil eder-v
: Ayrıntılı çıktı verir-f <dosya_yolu>
: Yedek dosyasının yolu ve adı
Manuel Geri Yükleme için pg_restore
Kullanımı
pg_restore
, pg_dump
ile alınan arşiv dosyasından PostgreSQL veritabanını geri yüklemek için kullanılır.
macOS:
bash
pg_restore -U your_username -d target_database -v /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
Windows:
cmd
pg_restore -U your_username -d target_database -v C:\ServBay\backup\postgresql\your_database_backup.dump
1
-U your_username
: Bağlanılacak kullanıcı adı.-d target_database
: Veri tabanının geri yükleneceği hedef adı. Eğer bu veritabanı yoksa önce oluşturmanız gerekir.-v
: Ayrıntılı çıktı verir.<dosya_yolu>
: Yedek dosyasının yolu.
ServBay’in Yerleşik Yedekleme Özelliği
ServBay, tüm yerel geliştirme ortamınızı—PostgreSQL veritabanları dâhil—yedeklemek için görsel arayüz ve otomatik seçenekler sunar.
ServBay’in yerleşik yedekleme fonksiyonları şunları içerir:
- Manuel yedekleme: ServBay UI üzerinden tek tıkla mevcut ortamın anlık görüntüsünü oluşturun.
- Otomatik yedekleme: ServBay’de yedekleme planı tanımlayarak düzenli periyodik yedeklemeleri devreye alın.
Yedeklemeye; ServBay yapılandırmaları, site dosyaları, tüm veritabanları (PostgreSQL dâhil), SSL sertifikaları gibi en kritik içerikler dâhildir. Süreci basitleştirmek ve veri güvenliğini artırmak için bu özelliğin aktif olarak kullanılması tavsiye edilir. ServBay’in ayarlarında veya ana ekranda ilgili yedekleme seçeneklerini bulabilir, kolayca yönetebilirsiniz.
Performans Optimizasyonu
PostgreSQL’in ServBay’de yüksek verimlilikle çalışması için bazı optimizasyon stratejileri uygulanabilir.
İndeks (Index) Optimizasyonu
Veritabanı indeksleri, özellikle büyük tablolar ve sık sorgulanan sütunlarda, veri erişimini ciddi oranda hızlandırır.
Sorgularda (WHERE
), birleştirme (JOIN
) veya sıralama (ORDER BY
) filtrelerinde kullanılan sütunlarda indeks oluşturmayı unutmayın.
sql
CREATE INDEX idx_your_column_name ON your_table_name(your_column_name);
1
your_table_name
tablo adınız, your_column_name
sütun adınız, idx_your_column_name
ise indeks adınız olmalıdır.
Sorgu Optimizasyonu
SQL sorgularının nasıl işlendiğini görmek ve darboğazları tespit etmek için EXPLAIN
komutu ile sorgu planını analiz edebilirsiniz.
sql
EXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1
EXPLAIN
çıktısı, indeks kullanımı, birleşme tipi, okunan satır sayısı gibi bilgiler sunar. Bunlara göre SQL’inizi veya indekslerinizi optimize edin.
Yapılandırma Optimizasyonu
postgresql.conf
yapılandırma dosyasını (çalışma ortamına göre yol değişir) değiştirerek donanım ve iş yüküne uygun parametreler tanımlayabilirsiniz.
Örneğin, shared_buffers
ayarı PostgreSQL’in veri önbelleği miktarını belirtir; bunu artırmak disk erişimini azaltıp, performansı yükseltir (sistem belleğinin sınırlarını aşmamak kaydıyla).
ini
# postgresql.conf için örnek ayar
shared_buffers = 1GB # Sisteminize ve iş yüküne göre ayarlayın
1
2
2
Yapılandırma sonrası genelde PostgreSQL servisini yeniden başlatmanız gerekir. ServBay yapılandırma dokümantasyonunu inceleyin.
Güvenlik Yönetimi
Veritabanı güvenliği, özellikle geliştirme ortamında hassas veriyle çalışırken son derece önemlidir.
Güçlü Parola Ayarlama
Tüm veritabanı kullanıcıları, özellikle yüksek yetkili kullanıcılar (postgres
gibi), için güçlü ve benzersiz parolalar belirleyin. Parolaları periyodik olarak güncelleyin.
sql
ALTER USER your_username WITH PASSWORD 'your_new_strong_password';
1
Düzenli Yedekleme
Veri kaybını önlemek için düzenli olarak yedek almayı ihmal etmeyin. ServBay’in yerleşik yedekleme özelliği ile pg_dump
’ı bir arada kullanarak güvenli bir mekanizma oluşturabilirsiniz.
Yetki Sınırlandırma
En az yetki prensibini benimseyerek, her kullanıcıya yalnızca gerekli hakları verin. Tüm kullanıcıları hiçbir zaman ALL PRIVILEGES
ile yetkilendirmeyin.
sql
-- Kullanıcının veritabanındaki tüm haklarını kaldırma
REVOKE ALL PRIVILEGES ON DATABASE mydatabase FROM your_username;
-- Kullanıcıya veritabanı bağlantısı ve geçici tablo oluşturma yetkisi verme (örnek)
GRANT CONNECT, TEMPORARY ON DATABASE mydatabase TO your_username;
-- Kullanıcıya belirli tabloda SELECT, INSERT, UPDATE, DELETE yetkilerini verme
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE your_table_name TO your_username;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Ağ Erişim Kontrolü
ServBay’in varsayılan yapılandırmasında veritabanı servisi genellikle yerel arayüze (localhost
veya 127.0.0.1
) bağlıdır; bu da dış ağdan doğrudan erişimi engeller ve güvenliği artırır. Yalnızca özel gereksinimler ve risk bilinciyle veritabanını dış erişime açın.
Sıkça Sorulan Sorular ve Çözümler
PostgreSQL’e Bağlanamıyorum
- PostgreSQL servisinin çalışıp çalışmadığını kontrol edin: ServBay arayüzü veya
servbayctl status postgresql <versiyon>
ile hizmet durumunu gözden geçirin. Çalışmıyorsa başlatın. - Bağlantı parametrelerini doğrulayın: Kullanıcı adı, parola, veritabanı adı, sunucu adresi ve port bilgilerinin doğru olup olmadığını kontrol edin. ServBay arayüzünden alınan kimlik bilgileri kesin olmalı.
- macOS:
localhost
veya/Applications/ServBay/tmp
, port5432
- Windows:
localhost
, port5432
- macOS:
- ServBay günlüklerini (log) inceleyin: PostgreSQL ilgili hata mesajları için ServBay log dosyalarını kontrol edin; çoğu zaman bağlantı hatasının nedeni bu kayıtlarda yer alır.
- Güvenlik duvarı ayarlarını kontrol edin: ServBay’in yerel yapılandırmasında genelde sorun olmaz; ancak sistem ya da üçüncü parti güvenlik yazılımı katı kurallara sahipse, ServBay dizinindeki PostgreSQL sürecinin yerel bağlantısına izin verdiğinize emin olun.
Yetki Sorunları
Veritabanı işlemlerinde "yetki reddedildi" (Permission Denied) hatası, genellikle mevcut kullanıcı yeterli hakka sahip olmadığı durumlarda ortaya çıkar.
- Mevcut kullanıcı yetkilerini görün:
psql
içinde\du
komutu ile kullanıcı ve rollerin özelliklerine,\dp <table_name>
ile belirli tablonun haklarına bakabilirsiniz. - Gerekli yetkileri verin: Gerekli haklara sahip bir kullanıcı (ör.
postgres
) ile bağlandıktan sonra, yetki altındaki kullanıcıyaGRANT
komutunu kullanarak ilgili hakları verin.sqlGRANT ALL PRIVILEGES ON DATABASE mydatabase TO your_username; -- Veritabanı düzeyinde yetki GRANT SELECT ON TABLE your_table_name TO your_username; -- Tablo düzeyinde yetki
1
2
Sonuç
PostgreSQL, güçlü ve esnek bir veritabanı yönetim sistemi olup, ServBay ile macOS ve Windows üzerinde kurulum ve yönetimini büyük ölçüde kolaylaştırabilirsiniz. Bu rehberde anlatılan kurulum, yapılandırma, bağlantı, temel veritabanı yönetimi, ServBay’in yerleşik yedekleme fonksiyonları, manuel yedekleme ve geri yükleme, performans optimizasyonu ve güvenlik yönetimi adımlarını uygulayarak yerel Web geliştirme işlemlerinizi daha verimli ve güvenli şekilde sürdürebilirsiniz. Bu yetkinlikleri kazanmak, geliştirme ortamınızı güçlendirmenize ve verilerinizin güvenliğini sağlamanıza yardımcı olacaktır.