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.
💡 Etkileşim için giriş yap.