PostgreSQL Veritabanı Yönetimi ve Kullanımı
PostgreSQL, güçlü, son derece ölçeklenebilir ve standartlara uygun açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir; geliştiriciler arasında oldukça popülerdir. ServBay, macOS için tasarlanmış bir yerel web geliştirme ortamı olarak PostgreSQL’i entegre şekilde sunar ve kurulumu ile yönetimini büyük ölçüde kolaylaştırır.
Bu makale; geliştiriciler için bir rehber olarak, PostgreSQL’in ServBay ortamındaki verimli yönetimini ve kullanımını ayrıntılı biçimde ele alır. Kurulum, konfigürasyon, günlük işlemler, yedekleme & geri yükleme, performans optimizasyonu ve güvenlik gibi temel alanları kapsar.
PostgreSQL’in Kurulumu ve Yapılandırılması
ServBay, PostgreSQL dahil olmak üzere paketleri yönetmek için sezgisel bir grafik arayüz sunar.
PostgreSQL Kurulumu
- ServBay uygulamasını açın.
- Sol menüden
Paketler
bölümüne tıklayın. - Paketler listesinden
PostgreSQL
paketini bulun. - Gereksiniminize uygun PostgreSQL sürümünü seçin (ServBay, PostgreSQL 10’dan 17’ye kadar birçok sürümü destekler).
- Kuruluma başlamak için yükle butonuna tıklayın.
Görsel: ServBay’de PostgreSQL sürümünü seçip kurma ekranı
PostgreSQL Servisinin Başlatılması, Durdurulması ve Yönetimi
Kurulumu tamamladıktan sonra, ServBay’in yönetim paneli veya servbayctl
komut satırı aracı ile PostgreSQL servisinin durumunu yönetebilirsiniz.
ServBay Yönetim Panelini Kullanma
- ServBay uygulamasını açın.
- Soldaki menüden
Paketler
bölümüne tıklayın. - Yüklü PostgreSQL sürümünü bulun.
- Servisin yanındaki butonlarla başlatma, durdurma ya da yeniden başlatma işlemlerini yapabilirsiniz.
servbayctl
Komut Satırı Aracını Kullanma
servbayctl
, ServBay’in tüm bileşenlerini yönetmek için kullanılan güçlü bir komut satırı arayüzüdür.
bash
# Belirli bir PostgreSQL sürümünü başlat (örn. PostgreSQL 16)
servbayctl start postgresql 16
# Belirli bir PostgreSQL sürümünü durdur (örn. PostgreSQL 16)
servbayctl stop postgresql 16
# Belirli bir PostgreSQL sürümünü yeniden başlat (örn. PostgreSQL 16)
servbayctl restart postgresql 16
# Belirli bir PostgreSQL sürümünün durumunu kontrol et (örn. PostgreSQL 16)
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: Komutlarda geçen sürüm numarası (16
gibi), ServBay’de yüklü olan PostgreSQL sürümüyle aynı olmalıdır.
PostgreSQL Yapılandırmasını Düzenleme
ServBay, PostgreSQL’in ayarlarını kolayca değiştirmenizi sağlar. Etkili yapılandırma; veritabanı performansını artırmak, güvenliği sağlamak ve sistem kaynaklarını verimli kullanmak için önemlidir.
ServBay’in gelişmiş grafik arayüzüyle PostgreSQL servisini yapılandırabilir, isterseniz doğrudan yapılandırma dosyasını da düzenleyebilirsiniz. Ayrıntılı bilgi ve adımlar için PostgreSQL Ayarlarını Düzenleme başlığındaki dokümantasyona göz atın.
PostgreSQL Veritabanına Bağlanma
Veritabanı işlemlerine başlamak için önce PostgreSQL’e bağlanmanız gerekir. ServBay ortamında çalışan PostgreSQL örneğine psql
komut satırı aracı veya pgAdmin gibi grafik arayüzleriyle bağlanabilirsiniz.
ServBay’de iki ana bağlantı yöntemi sunulur: TCP/IP bağlantısı (genellikle harici araçlar ya da farklı konteyner/servisler için) ve yerel Socket bağlantısı (ServBay içi önerilen; daha yüksek performans ve güvenlik sağlar).
Bağlantı Bilgilerini Alma
Bağlantı öncesinde PostgreSQL kullanıcı adı ve şifresi gibi bilgileri edinmeniz gerekir. ServBay’de genellikle kurulumda veya başlatma aşamasında varsayılan bilgiler belirlenir. ServBay’in yönetim panelinde özellikle postgres
gibi varsayılan ya da kendi oluşturduğunuz kullanıcı bilgilerini bulabilirsiniz.
Komut Satırı Aracı psql
ile Bağlanma
psql
, PostgreSQL’in resmi interaktif komut satırı istemcisidir.
TCP/IP Bağlantısı Kullanımı: Bu yöntem, ağ üzerinden (örn.
localhost
veya belirli bir IP) bağlanmak için kullanılır. ServBay'de varsayılan PostgreSQL portu5432
’dir.bashpsql -U your_username -h localhost -d your_database -p 5432
1your_username
veyour_database
yerlerini kendi kullanıcı adınız ve bağlanmak istediğiniz veritabanı adıyla değiştirin.Yerel Socket Bağlantısı Kullanımı: ServBay varsayılan olarak yerel Unix Domain Socket bağlantısını kullanacak şekilde yapılandırılmıştır; bu yöntem daha güvenli ve yüksek performanslıdır. Socket dosyası genellikle ServBay’in geçici dizinindedir.
bashpsql -U your_username -h /Applications/ServBay/tmp -d your_database
1your_username
veyour_database
için kendi kullanıcı adı ve veritabanınızı girin./Applications/ServBay/tmp
dizini, ServBay’de PostgreSQL Socket’inin varsayılan yoludur.
pgAdmin ile Bağlanma
pgAdmin, zengin özelliklere sahip, popüler bir açık kaynak PostgreSQL yönetim aracı ve grafiksel arayüz sunar.
- pgAdmin Kurulumu: Eğer ServBay’de yerleşik olarak bulunmuyorsa, pgAdmin Resmi Sitesi üzerinden indirip yükleyebilirsiniz.
- pgAdmin’i başlatın.
- Yeni bir sunucu bağlantısı oluşturun:
Add New Server
seçeneğine tıklayın. - Bağlantı bilgilerini girin:
- General sekmesi: Bir bağlantı ismi girin (ör.
ServBay PostgreSQL
). - Connection sekmesi:
- Hostname/address:
localhost
- Port:
5432
- Maintenance database: Genellikle
postgres
- Username: ServBay panelindeki kullanıcı adı (ör.
postgres
) - Password: ServBay panelinde görülen şifre
- Hostname/address:
- SSL mode: İhtiyacınıza göre seçebilirsiniz (genellikle
Prefer
ya daRequire
daha güvenli olur; fakat ServBay’in varsayılan ayarlarındaAllow
veyaDisable
da kullanılabilir. SSL ayarları için ServBay dokümantasyonunu inceleyin).
- General sekmesi: Bir bağlantı ismi girin (ör.
Save
butonuyla veritabanı sunucusuna bağlanın.
Temel Veritabanı Yönetim İşlemleri
PostgreSQL’e bağlandıktan sonra çeşitli veritabanı yönetimi görevlerini yerine getirebilirsiniz.
Veritabanı ve Kullanıcıları Listeleme
psql
komut satırında; ters slash (\
) ile başlayan meta-komutlar mevcut veritabanlarını ve kullanıcı (rol) listesini görebilmenizi sağlar:
- Tüm veritabanlarını listelemek için:sql
\l
1 - Tüm kullanıcıları (rolleri) listelemek için:sql
\du
1
Veritabanı ve Kullanıcı Oluşturma
Yeni veritabanı ve kullanıcıları SQL komutlarıyla oluşturabilir, gerekli yetkileri atayabilirsiniz.
Yeni veritabanı oluşturun:
sqlCREATE DATABASE servbay_demo_db;
1Veritabanlarını, projeyle ilgili tanımlayıcı isimlerle oluşturmanız önerilir.
Yeni kullanıcı (rol) ve şifre oluşturun:
sqlCREATE USER servbay_user WITH PASSWORD 'a_strong_password';
1servbay_user
kısmını tercih ettiğiniz kullanıcı adıyla,a_strong_password
kısmını ise güçlü bir şifreyle değiştirin.Kullanıcıya veritabanı yetkisi verin:
sqlGRANT ALL PRIVILEGES ON DATABASE servbay_demo_db TO servbay_user;
1Bu komut,
servbay_user
kullanıcısına ilgili veritabanında tüm ayrıcalıkları tanır. Güvenlik açısından yalnızca ihtiyaç duyulan en düşük yetkiler verilmelidir.
PostgreSQL Root (postgres) Kullanıcı Şifresini Sıfırlama
Eğer PostgreSQL’in ana kullanıcısı olan root
(veya genellikle postgres
) şifresini unuttuysanız, ServBay üzerinden kolayca şifre sıfırlama işlemi yapabilirsiniz. Bu işlem, genellikle ServBay’in grafik arayüzünden, karmaşık komutlara veya dosya değiştirmeye gerek olmaksızın yönetilir. Ayrıntılı bilgi için ServBay’in PostgreSQL ayarlarında veya dokümantasyonda şifre sıfırlama bölümüne göz atın.
Veritabanı Yedekleme ve Geri Yükleme
Düzenli yedek almak, veri güvenliği için kritik öneme sahiptir. ServBay ortamında hem PostgreSQL’in standart araçlarını (pg_dump
, pg_restore
) hem de ServBay’in yerleşik yedekleme özelliğini kullanabilirsiniz.
pg_dump
ile Manuel Yedekleme
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 dizininde saklamanız tavsiye edilir:
bash
/Applications/ServBay/backup/postgresql
1
Bir veritabanını pg_dump
ile yedekleme örneği:
bash
pg_dump -U your_username -d your_database -F c -b -v -f /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: Veritabanı kullanıcı adını belirtir.-d your_database
: Yedeklenecek veritabanı adını belirtir.-F c
: Çıkış biçimini özel (custom) arşiv formatı olarak ayarlar (esneklik ve kolay geri yükleme için önerilir).-b
: "Büyük nesneleri" (Blobs) dahil eder.-v
: Detaylı çıktı verir.-f <dosya_yolu>
: Dosya yolu ve adını belirler.
pg_restore
ile Manuel Geri Yükleme
pg_restore
, pg_dump
ile oluşturulan arşivden mevcut bir PostgreSQL veritabanına geri yükleme yapar.
bash
pg_restore -U your_username -d target_database -v /Applications/ServBay/backup/postgresql/your_database_backup.dump
1
-U your_username
: Veritabanı kullanıcı adını belirtir.-d target_database
: Geri yüklenecek (önceden oluşturulmuş) hedef veritabanı.-v
: Detaylı çıktı verir.<dosya_yolu>
: Yedek dosyasının yolu.
ServBay’in Yerleşik Yedekleme Özelliğini Kullanmak
ServBay, tüm yerel geliştirme ortamınızı (PostgreSQL dahil) otomatik veya manuel yedeklemek için kullanıcı dostu arayüz sunar.
ServBay’in dahili yedekleme özelliğiyle:
- Manuel Yedekleme: ServBay’in arayüzünde tek tıkla anlık görüntü (snapshot) oluşturabilirsiniz.
- Otomatik Yedekleme: Yedekleme planı tanımlayarak, belirli aralıklarla yedeklerin otomatik alınmasını sağlayabilirsiniz.
Yedekleme, ServBay ayarları, site dosyaları, tüm veritabanları (PostgreSQL dahil), SSL sertifikaları vb. yapılandırmaları kapsar. Yedekleme süreçlerini kolaylaştırmak ve veri güvenliğinizi sağlamak için bu özelliğin aktif kullanımı şiddetle tavsiye edilir. İlgili ayarlara ServBay ana ekranı veya ayarlar menüsünden ulaşabilirsiniz.
Performans Optimizasyonu
ServBay ortamında PostgreSQL’in en verimli şekilde çalışması için aşağıdaki performans iyileştirmelerini gerçekleştirebilirsiniz.
İndeks Optimizasyonu
Veritabanı indeksleri, büyük tablolarda ve sıkça sorgulanan sütunlarda veri çekme hızını büyük oranda artırır.
Sıkça kullanılan sorgu (WHERE), birleştirme (JOIN) veya sıralama (ORDER BY) koşulları için uygun alanlara indeks ekleyin:
sql
CREATE INDEX idx_your_column_name ON your_table_name(your_column_name);
1
your_table_name
, your_column_name
ve idx_your_column_name
bölümlerini kendi verilerinizle değiştirin.
Sorgu Optimizasyonu
EXPLAIN
komutuyla SQL sorgularınızın yürütme planını analiz edebilir, performans darboğazlarını tespit edebilirsiniz.
sql
EXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1
EXPLAIN
çıktısı, indeks kullanımı, birleştirme tipi, taranan satır sayısı gibi bilgileri gösterir; bu bilgiler ışığında sorgularınızı veya indekslerinizi optimize edebilirsiniz.
Yapılandırma Optimizasyonu
PostgreSQL yapılandırma dosyalarını (genellikle postgresql.conf
) düzenleyerek sisteminize ve yükünüze uygun parametreleri ayarlayabilirsiniz.
Örneğin, shared_buffers
parametresi ile PostgreSQL’in önbellek için kullandığı bellek miktarını değiştirebilir, arttırarak disk erişimini azaltıp performansı yükseltebilirsiniz (ancak sisteminizdeki toplam belleği aşmamalıdır).
ini
# postgresql.conf'da örnek ayar
shared_buffers = 1GB # Sistem belleğine ve iş yüküne göre değiştirin
1
2
2
Değişiklik sonrası PostgreSQL servisini yeniden başlatmanız gerekir. Ayrıntılar için ServBay yapılandırma dokümantasyonuna başvurun.
Güvenlik Yönetimi
Veritabanı güvenliği son derece önemlidir, özellikle geliştirme ortamında hassas verilerle çalışılıyorsa dikkat edilmelidir.
Güçlü Parola Kullanımı
Tüm veritabanı kullanıcılarına –özellikle admin (postgres
) gibi yüksek yetkili hesaplara– karışık ve birbirinden farklı güçlü şifreler belirleyin; şifrelerinizi düzenli olarak değiştirin.
sql
ALTER USER your_username WITH PASSWORD 'your_new_strong_password';
1
Düzenli Yedekleme
Yukarıda da belirtildiği gibi, düzenli yedekleme veri kaybı riskini en aza indirir. ServBay’in yerleşik yedekleme sistemiyle birlikte elle pg_dump
yöntemiyle yedekleme yaparak güvenliğinizden emin olun.
Kullanıcı Yetkilerini Sınırlandırmak
Asgari yetki ilkesine uyarak, veritabanı kullanıcılarına yalnızca görevleri için gereken minimum izinleri verin; tüm kullanıcılara ALL PRIVILEGES
verme alışkanlığından kaçının.
sql
-- Kullanıcının veritabanındaki tüm ayrıcalıklarını kaldırın
REVOKE ALL PRIVILEGES ON DATABASE mydatabase FROM your_username;
-- Kullanıcıya sadece bağlanma ve geçici tablo oluşturma hakkı verin (örnek)
GRANT CONNECT, TEMPORARY ON DATABASE mydatabase TO your_username;
-- Kullanıcıya belirli bir tabloda SELECT, INSERT, UPDATE, DELETE izinlerini verin
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 ayarları, veritabanı servisini genellikle sadece yerel arayüzlere (localhost
veya 127.0.0.1
) bağlanacak şekilde kısıtlar. Bu, dış ağlardan doğrudan erişimi engelleyerek güvenliği artırır. Özel ihtiyaçlar, riskler ve ağ güvenliğinden emin olmadan veritabanınızı dış dünyaya açmanız önerilmez.
Sıkça Sorulan Sorunlar ve Çözümler
PostgreSQL'e Bağlanamıyorum
- PostgreSQL servisinin çalışıp çalışmadığını kontrol edin: ServBay arayüzü veya
servbayctl status postgresql <sürüm>
komutuyla servis durumunu denetleyin. Çalışmıyorsa başlatın. - Bağlantı parametrelerini kontrol edin: Kullanıcı adınız, şifreniz, veritabanı adı, host (
localhost
veya/Applications/ServBay/tmp
) ve port (5432
) doğru mu? Özellikle ServBay arayüzünden aldığınız bilgiler eksiksiz ve güncel olsun. - ServBay kayıtlarını inceleyin: ServBay’in log dosyalarında PostgreSQL ile ilgili hata mesajlarını inceleyin; bağlantı sorunlarının nedenini belirlemenize yardımcı olur.
- Güvenlik duvarı ayarlarını kontrol edin: ServBay’in varsayılan yerel ayarında genellikle sıkıntı olmaz; fakat sisteminizde ya da üçüncü taraf güvenlik yazılımlarında katı firewall kuralları varsa, ServBay dizinindeki PostgreSQL sürecine yerel erişime izin verin.
Yetki Sorunları
Veritabanı işlemleri sırasında “Yetki reddedildi” (Permission Denied) hatası alırsanız, bu genellikle kullanılan kullanıcının yeterli izni olmamasından kaynaklanır.
- Kullanıcı yetkilerini kontrol edin:
psql
’de\du
komutuyla kullanıcı rolleri ve özelliklerini,\dp <tablo_adı>
ile ise tablo üzerindeki izinleri görebilirsiniz. - Gerekli izinleri tanımlayın: Yeterli yetkili bir kullanıcıyla (örn.
postgres
) oturum açıp,GRANT
komutlarıyla kullanıcıya gerekli izinleri verin.sqlGRANT ALL PRIVILEGES ON DATABASE mydatabase TO your_username; -- Veritabanı düzeyinde yetkiler GRANT SELECT ON TABLE your_table_name TO your_username; -- Tablo düzeyinde yetkiler
1
2
Sonuç
PostgreSQL; güçlü ve esnek bir veritabanı yönetim sistemidir; ServBay ile macOS üzerinde kullanımı ve yönetimi oldukça kolaylaşır. Bu rehberin ardından; ServBay ortamında PostgreSQL’in kurulumu, yapılandırması, bağlantı kurulması, temel görevlerin yönetimi, yerleşik yedekleme ve manuel yedekleme/geri yükleme, performans ayarları ve güvenlik takviyesi konularında uzmanlaşabilirsiniz. Bu beceriler, yerel web geliştirme süreçlerinizde size hız ve güvenlik kazandıracaktır.