Veritabanı Yapılandırması
FeedbackPulse SaaS, birincil veritabanı olarak MySQL veya MariaDB kullanır.
✅ Desteklenen Veritabanları
| Veritabanı | Sürüm | Durum |
|---|---|---|
| MySQL | 8.0+ | ✅ Tam destekleniyor (önerilen) |
| MariaDB | 10.6+ | ✅ Tam destekleniyor |
| PostgreSQL | 15+ | ⚠️ Deneysel (migrasyon ayarlamaları gerekebilir) |
| SQLite | 3.35+ | ⚠️ Yalnızca geliştirme (üretim için değil) |
🔧 Veritabanı Oluşturma
Yükleyiciyi çalıştırmadan önce:
-- MySQL'e bağlan
mysql -u root -p
-- Uygun karakter setiyle veritabanı oluştur
CREATE DATABASE feedbackpulse
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Özel bir kullanıcı oluştur (güvenlik için önerilir)
CREATE USER 'feedbackpulse'@'localhost'
IDENTIFIED BY 'your_strong_password_here';
-- İzin ver
GRANT ALL PRIVILEGES ON feedbackpulse.*
TO 'feedbackpulse'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ Neden
utf8mb4? Emoji dahil tam Unicode karakter setini destekler. Müşteri geri bildirimleri çoğu zaman emoji içerir, bu nedenle bu önemlidir!
⚙️ .env Yapılandırması
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=feedbackpulse
DB_USERNAME=feedbackpulse
DB_PASSWORD=your_strong_password_here
Yaygın Sorunlar
| Sorun | Çözüm |
|---|---|
SQLSTATE[HY000] [2002] Connection refused | localhost yerine 127.0.0.1 kullanın |
SQLSTATE[HY000] [1045] Access denied | Kullanıcı adı/parolayı kontrol edin, kullanıcının izinleri olduğundan emin olun |
SQLSTATE[42S01] Table already exists | Veritabanı boş değildi. Silin ve yeniden oluşturun ya da --force bayrağını kullanın |
Emoji karakterleri ???? olarak görünüyor | Veritabanı karakter seti utf8 değil utf8mb4 olmalıdır |
🔍 MySQL Performans Ayarlama
Çok sayıda kiracıyla üretim sunucuları için MySQL'i optimize edin:
# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# InnoDB buffer pool (kullanılabilir RAM'in %50-70'ine ayarlayın)
innodb_buffer_pool_size = 1G
# Log dosya boyutu
innodb_log_file_size = 256M
# Maksimum bağlantı (yoğun trafik platformları için artırın)
max_connections = 200
# Sorgu önbelleği (MySQL 8.0+'da devre dışı bırakın, kullanımdan kaldırıldı)
query_cache_type = 0
# Yavaş sorgu günlüğü (performans sorunlarını hata ayıklama için)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
MySQL'i yeniden başlatın:
sudo systemctl restart mysql
💾 Yedekleme ve Geri Yükleme
Yönetici Paneli Aracılığıyla
FeedbackPulse yerleşik bir yedekleme özelliğine sahiptir:
Admin → Yedeklerbölümüne gidin- Yedek Oluştur düğmesine tıklayın
.sql.gzdosyasını indirin
Manuel Yedekleme
mysqldump -u feedbackpulse -p feedbackpulse | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Geri Yükleme
gunzip < backup_20240101_120000.sql.gz | mysql -u feedbackpulse -p feedbackpulse