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:

  1. Anti-cheat → veritabanınız (FiveM sunucunuzda, server.cfg)
  2. Panel → veritabanınız (panelde, sunucu ayarlarında)
Verileriniz sizde kalır. Biz veritabanı barındırmıyoruz. Banlarınız, oyuncu kayıtlarınız ve tespitleriniz kendi sunucunuzdaki veritabanında durur; panel yalnızca okumak ve yazmak için bağlanır. İstediğiniz an bağlantıyı kesebilirsiniz — veriniz sizde kalır.

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
En sık yapılan hata: URL formu (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
Neden ayrı kullanıcı? Panel yalnızca veri okuyup yazar; tablo silmesi, kullanıcı oluşturması veya başka veritabanlarını görmesi gerekmez. Yukarıdaki yetkiler tam olarak bu kadarını verir. Böylece panel tarafında bir sorun olsa bile veritabanınızın geri kalanı etkilenmez.

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ğrudanYol B — Köprü
Veritabanı dışarı açık mıEvet (tek IP'ye)Hayır
Canlı veriAnlık~25 saniye gecikme
Kurulum zorluğuOrtaKolay
TavsiyeÇoğu sunucuKatı 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

HataSebep ve çözüm
Access denied for userParola 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 connectKullanı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 bozukBağlantı dizesinde charset=utf8mb4 olmalı.
Veritabanını açmak istemiyorumYol 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
Ana sayfa Tosun Dev Docs