Veritabanı Bağlantısı
Veritabanı bağlantısı
Anti-cheat, banları ve tespitleri sizin kendi veritabanınızda saklar. Panel de aynı veritabanına bağlanarak size web arayüzünde gösterir. Bu sayfada iki şeyi ayarlarsınız:
- Anti-cheat → veritabanınız (FiveM sunucunuzda,
server.cfg) - Panel → veritabanınız (panelde, sunucu ayarlarında)
1. Veritabanınızı hazırlayın
Zaten bir MySQL/MariaDB kullanıyorsanız (QBCore, ESX kuruluysa kullanıyorsunuzdur) yeni bir şey kurmanıza gerek yok. Anti-cheat kendi tablolarını (ts_anticheat, ac_detections, panel_*) mevcut veritabanınıza ekler ve diğer tablolarınıza dokunmaz.
Şemayı yükleyin:
mysql -u KULLANICI -p VERITABANI < tosun-ac/sql/ts_anticheat.sql
Veritabanınız yoksa Debian/Ubuntu üzerinde:
sudo apt update && sudo apt install -y mariadb-server
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE fivem CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem'@'localhost' IDENTIFIED BY 'GUCLU_BIR_PAROLA';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem'@'localhost';
FLUSH PRIVILEGES;
2. Anti-cheat'i veritabanınıza bağlayın
FiveM server.cfg dosyanızda oxmysql bağlantı dizesi zaten vardır. Anti-cheat onu kullanır — ek bir ayar gerekmez:
set mysql_connection_string "server=localhost;database=fivem;userid=fivem;password=PAROLA;charset=utf8mb4"
ensure oxmysql
ensure tosun-ac
ensure tosun-ac-guardian
mysql://kullanici:parola@host/db) kullanıyorsanız ve parolanızda @, :, /, #, ? gibi karakterler varsa bağlantı kurulmaz. Yukarıdaki nesne formu hiçbir karakter kaçışı gerektirmez — sorun yaşıyorsanız ona geçin.
3. Paneli veritabanınıza bağlayın
Panelin banlarınızı ve tespitlerinizi gösterebilmesi için veritabanınıza erişmesi gerekir. İki yol var:
Yol A — Doğrudan bağlantı (önerilen, tam özellik)
Panel → Sunucular → sunucunuz → Veritabanı Bağlantısı bölümüne bilgileri girin:
Host : sunucunuzun-ip-adresi
Port : 3306
Veritabanı: fivem
Kullanıcı : panel_readonly (aşağıya bakın)
Parola : ...
Bunun için veritabanınızın dışarıdan erişime açık olması gerekir. Güvenli şekilde nasıl yapılacağı:
# 1) MySQL'i dışarıdan dinlemeye aç
# /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
-- 2) Panele ÖZEL, SINIRLI bir kullanıcı oluşturun.
-- Kendi root/uygulama kullanıcınızı ASLA vermeyin.
CREATE USER 'panel'@'{{PANEL_IP}}' IDENTIFIED BY 'PANEL_ICIN_AYRI_PAROLA';
GRANT SELECT, INSERT, UPDATE, DELETE ON fivem.* TO 'panel'@'{{PANEL_IP}}';
FLUSH PRIVILEGES;
# 3) Güvenlik duvarında SADECE panel IP'sine izin verin
sudo ufw allow from {{PANEL_IP}} to any port 3306
sudo systemctl restart mariadb
Bilgileri girdikten sonra "Bağlantıyı Test Et" düğmesine basın. Yeşil onay görürseniz hazırsınız.
Yol B — Köprü modu (veritabanınızı dışarı açmak istemiyorsanız)
Veritabanınızı internete açmak istemiyorsanız anti-cheat verileri panele kendisi iter. Panel veritabanınıza hiç bağlanmaz.
// configs/anticheat_config.lua
ts.panelMirror = {
enabled = true,
intervalSec = 25,
fullSync = false, -- yalnızca AC tabloları taşınır
}
Bu modda veritabanınıza hiçbir dış erişim gerekmez; bağlantı tek yönlüdür (sunucunuzdan panele, HTTPS üzerinden). Karşılığında bazı canlı sorgular biraz gecikmeli olur.
| Yol A — Doğrudan | Yol B — Köprü | |
|---|---|---|
| Veritabanı dışarı açık mı | Evet (tek IP'ye) | Hayır |
| Canlı veri | Anlık | ~25 saniye gecikme |
| Kurulum zorluğu | Orta | Kolay |
| Tavsiye | Çoğu sunucu | Katı güvenlik politikası olanlar |
Bağlantıyı test edin
# FiveM sunucunuzdan (yerel bağlantı):
mysql -u KULLANICI -p VERITABANI -e "SELECT VERSION();"
# Panel bağlantısını taklit edin (dışarıdan erişim testi):
mysql -h SUNUCU_IP -u panel -p fivem -e "SELECT COUNT(*) FROM ts_anticheat;"
Sunucu başladıktan sonra konsolda şunu görmelisiniz:
[oxmysql] Database server connection established
Sorun giderme
| Hata | Sebep ve çözüm |
|---|---|
Access denied for user | Parola yanlış veya URL formunda özel karakter bozulmuş → nesne formunu kullanın. Kullanıcının o host'tan bağlanma izni olduğunu doğrulayın: SELECT user,host FROM mysql.user; |
Host 'x' is not allowed to connect | Kullanıcı yalnızca localhost için tanımlı. Panel için 'panel'@'{{PANEL_IP}}' kullanıcısını oluşturun. |
| Panelde "Bağlantı başarısız" | Güvenlik duvarı. Test: nc -zv SUNUCU_IP 3306. Ayrıca bind-address hâlâ 127.0.0.1 olabilir. |
| Türkçe karakterler bozuk | Bağlantı dizesinde charset=utf8mb4 olmalı. |
| Veritabanını açmak istemiyorum | Yol B (köprü modu) kullanın — dış erişim gerekmez. |
Yedekleme
Veritabanı sizde olduğu için yedekleme de sizin sorumluluğunuzdadır. Günlük otomatik yedek:
cat > /etc/cron.daily/fivem-yedek <<'EOF'
#!/bin/bash
mysqldump --single-transaction --quick -u KULLANICI -pPAROLA VERITABANI \
| gzip > /var/backups/fivem-$(date +%F).sql.gz
find /var/backups -name "fivem-*.sql.gz" -mtime +14 -delete
EOF
chmod +x /etc/cron.daily/fivem-yedek