Menü
💬 Forum 🛒 Mağaza ⛏️ Sunucular ⚔️ Klanlar 📰 Blog 🏆 Liderlik 👥 Üyeler 🎖️ Rütbeler
1 üye online 👥 5 toplam üye 📝 Bugün 12 konu 💬 Bugün 12 mesaj

📖 Rehber Minecraft Sunucusunu MySQL/MariaDB ile Nasıl Bağlarsınız?

orginscorel · 18 saat önce · 1 gönderi · 0 görüntülenme
#1

Minecraft Sunucusunu MySQL/MariaDB ile Bağlama Rehberi



Pek çok Minecraft plugin'i varsayılan olarak SQLite veya YAML dosyalarında veri saklar. Bu yöntem küçük sunucular için yeterli olsa da, oyuncu sayısı ve veri hacmi arttıkça ciddi performans ve güvenilirlik sorunlarına yol açar. MySQL veya MariaDB'ye geçmek, ölçeklenebilir bir altyapının temelidir.

Neden MySQL?




  • Performans: Büyük veri setlerinde SQLite'tan çok daha hızlı sorgu yürütür
  • Eşzamanlılık: Aynı anda birden fazla plugin veri yazabilir
  • Ölçeklenebilirlik: Birden fazla sunucu aynı veri tabanını paylaşabilir (BungeeCord network'leri)
  • Yedekleme: mysqldump ile kolayca yedek alınır


MySQL/MariaDB Kurulumu




sudo apt update
sudo apt install -y mariadb-server
sudo systemctl enable mariadb
sudo systemctl start mariadb
sudo mysql_secure_installation


Güvenlik sihirbazında root şifresi belirleyin, anonim kullanıcıları kaldırın, uzak root girişini devre dışı bırakın.

Minecraft için Kullanıcı ve Veritabanı Oluşturma




sudo mysql -u root -p

CREATE DATABASE minecraft_lp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'mc_user'@'localhost' IDENTIFIED BY 'GucluBirSifre123!';
GRANT ALL PRIVILEGES ON minecraft_lp.* TO 'mc_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;


Her plugin için ayrı veritabanı oluşturmanızı öneririm; veri karışmaz, yedekleme kolaylaşır.

LuckPerms'i MySQL'e Bağlama



LuckPerms config.yml içinde:


storage-method: mysql

data:
  address: localhost
  port: 3306
  database: minecraft_lp
  username: mc_user
  password: GucluBirSifre123!
  pool-settings:
    maximum-pool-size: 10
    minimum-idle: 10
    maximum-lifetime: 1800000
    connection-timeout: 5000


EssentialsX'i MySQL'e Bağlama



EssentialsX, ekonomi verilerini MySQL'de saklayabilir. config.yml:


storage:
  backend: MySQL
  mysql:
    host: localhost
    port: 3306
    database: minecraft_essentials
    username: mc_user
    password: GucluBirSifre123!


Bağlantı Havuzu (Connection Pool) Neden Önemli?



Her sorgu için ayrı veritabanı bağlantısı açmak yavaştır. HikariCP gibi connection pool kütüphaneleri, bağlantıları önceden oluşturup havuzda tutar; plugin istediğinde hazır bir bağlantıyı alır. LuckPerms bunu otomatik yapar. Kendi yazdığınız plugin'lerde HikariCP kullanın.

Veritabanını Yedeklemek




# Tek bir veritabanını yedekle
mysqldump -u mc_user -p minecraft_lp > yedek_lp_$(date +%Y%m%d).sql

# Tüm veritabanlarını yedekle
mysqldump -u root -p --all-databases > tum_yedek_$(date +%Y%m%d).sql


Bunu crontab'a ekleyip otomatikleştirin.

MySQL şifrelerini asla plain text olarak git deposunda veya log dosyasında bırakmayın. .env dosyası veya şifreli konfigürasyon kullanın.


Uzaktan Erişim Gerekiyorsa



BungeeCord network'ünde farklı makinelerdeki sunucular aynı MySQL'e bağlanacaksa, MySQL'in bind-address ayarını değiştirmeniz gerekir. Ama bu portu internete açmayın; sunucular arasında özel ağ (private network) kullanın veya SSH tüneli kurun.

Cevap yazabilmek için giriş yap.