Connection string (bağlantı dizesi), bir uygulamanın veritabanına nasıl bağlanacağını belirten yapılandırılmış bir metin dizesidir. Sunucu adresi, port numarası, veritabanı adı, kullanıcı bilgileri ve ek parametreleri tek bir satırda birleştirir. Doğru bir connection string oluşturmak, veritabanı ile uygulamanız arasındaki iletişimin ilk ve en kritik adımıdır.
Connection String Anatomisi
Çoğu bağlantı dizesi URI (Uniform Resource Identifier) formatını takip eder:
protokol://kullanıcı:şifre@sunucu:port/veritabanı?parametre1=değer1¶metre2=değer2
Bileşenler:
- Protokol: Veritabanı türünü belirtir (postgresql, mysql, mongodb vb.)
- Kullanıcı adı ve şifre: Kimlik doğrulama bilgileri
- Sunucu: Hostname veya IP adresi
- Port: Veritabanı servisinin dinlediği port numarası
- Veritabanı: Bağlanılacak veritabanı adı
- Parametreler: SSL, timeout, encoding gibi ek ayarlar
Veritabanı Bazında Connection String Örnekleri
PostgreSQL
Varsayılan port: 5432
# Temel
postgresql://user:password@localhost:5432/mydb
# SSL ile
postgresql://user:[email protected]:5432/mydb?sslmode=require
# Bağlantı havuzu ayarıyla
postgresql://user:password@localhost:5432/mydb?pool_max_conns=20
# Anahtar-değer formatı (libpq)
host=localhost port=5432 dbname=mydb user=user password=password sslmode=require
MySQL
Varsayılan port: 3306
# URI formatı
mysql://user:password@localhost:3306/mydb
# Karakter seti ile
mysql://user:password@localhost:3306/mydb?charset=utf8mb4
# Node.js (mysql2) için
mysql://user:password@localhost:3306/mydb?connectionLimit=10&waitForConnections=true
MongoDB
Varsayılan port: 27017
# Temel
mongodb://user:password@localhost:27017/mydb
# Replica Set ile
mongodb://user:password@host1:27017,host2:27017,host3:27017/mydb?replicaSet=rs0
# MongoDB Atlas (bulut)
mongodb+srv://user:[email protected]/mydb?retryWrites=true&w=majority
# Kimlik doğrulama veritabanı belirtme
mongodb://user:password@localhost:27017/mydb?authSource=admin
Microsoft SQL Server (MSSQL)
Varsayılan port: 1433
# URI formatı
mssql://user:password@localhost:1433/mydb
# ADO.NET formatı
Server=localhost,1433;Database=mydb;User Id=user;Password=password;Encrypt=true;
# Windows Authentication
Server=localhost;Database=mydb;Trusted_Connection=true;
Redis
Varsayılan port: 6379
# Temel
redis://localhost:6379
# Şifreli
redis://:password@localhost:6379/0
# TLS ile
rediss://:[email protected]:6380/0
# Sentinel ile
redis+sentinel://:password@sentinel1:26379,sentinel2:26379/mymaster/0
SQLite
# Dosya tabanlı
sqlite:///path/to/database.db
sqlite:///Users/user/projects/myapp/data.sqlite
# Bellek içi (in-memory)
sqlite:///:memory:
Güvenlik En İyi Pratikleri
Bağlantı dizeleri hassas bilgiler içerir. Bu bilgilerin sızması, veritabanınıza yetkisiz erişim anlamına gelir:
- Asla kaynak koduna yazmayın: Ortam değişkenleri (.env) veya secret manager kullanın
- Git'e commit etmeyin:
.gitignoredosyasında .env'yi mutlaka belirtin - SSL/TLS kullanın: Özellikle uzak sunuculara bağlanırken şifreli bağlantı zorunludur
- Minimum yetki prensibi: Uygulama kullanıcısına yalnızca gerekli izinleri verin
- Şifre karmaşıklığı: Güçlü, rastgele üretilmiş şifreler kullanın
- IP kısıtlaması: Veritabanı sunucusuna yalnızca belirli IP adreslerinden erişime izin verin
Connection Pooling (Bağlantı Havuzu)
Her istek için yeni bir veritabanı bağlantısı açmak maliyetlidir. Bağlantı havuzu, önceden oluşturulmuş bağlantıları yeniden kullanarak performansı artırır:
# PostgreSQL bağlantı havuzu parametreleri
postgresql://user:password@localhost:5432/mydb?pool_min_size=5&pool_max_size=20
# MySQL bağlantı havuzu
mysql://user:password@localhost:3306/mydb?connectionLimit=25&queueLimit=0
Havuz boyutunu belirlerken uygulamanızın eşzamanlı istek sayısını ve veritabanı sunucusunun kapasitesini göz önünde bulundurun. Çok büyük havuz, sunucu kaynaklarını tüketir; çok küçük havuz ise isteklerin kuyrukta beklemesine neden olur.
Veritabanı bağlantı dizelerinizi hızlıca oluşturmak mı istiyorsunuz? SiteScripti'nin Connection String Oluşturucu aracıyla PostgreSQL, MySQL, MongoDB ve daha fazlası için bağlantı dizelerini kolayca üretin.
Bu konuyla ilgili araçlarımızı da deneyin: ENV Generator, Docker Compose Oluşturucu, JSON Formatter