Ana içeriğe geç

Veritabanı Yapılandırması

FeedbackPulse SaaS, birincil veritabanı olarak MySQL veya MariaDB kullanır.


✅ Desteklenen Veritabanları

VeritabanıSürümDurum
MySQL8.0+✅ Tam destekleniyor (önerilen)
MariaDB10.6+✅ Tam destekleniyor
PostgreSQL15+⚠️ Deneysel (migrasyon ayarlamaları gerekebilir)
SQLite3.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 refusedlocalhost yerine 127.0.0.1 kullanın
SQLSTATE[HY000] [1045] Access deniedKullanıcı adı/parolayı kontrol edin, kullanıcının izinleri olduğundan emin olun
SQLSTATE[42S01] Table already existsVeritabanı boş değildi. Silin ve yeniden oluşturun ya da --force bayrağını kullanın
Emoji karakterleri ???? olarak görünüyorVeritabanı 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:

  1. Admin → Yedekler bölümüne gidin
  2. Yedek Oluştur düğmesine tıklayın
  3. .sql.gz dosyası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

⏭️ Sonraki Adımlar