Metin2'de MySQL Nedir? Yeni Başlayanlar İçin Veritabanı

Kayıtlı
1 Yıl 9 Ay 14 Gün
Katılım
10 Ocak 2025
Konular
50
Mesajlar
140
Tepkime puanı
21
Online süresi
7h 23m
Puan
43
Konum
Türkiye
Web sitesi
www.zyncra.shop
📌 Konu İçeriği — Hızlı Bakış
01.
Metin2 sunucusunda MySQL ne işe yarar?
02. db çekirdeği ile MySQL arasındaki ilişki
03. Komut satırı
04. Güvenli çalışma alışkanlıkları
05. Önce yedek: neden ve nasıl?
06. Sunucu açıkken neden dikkatli olunmalı?

  1. Metin2 sunucusunda MySQL ne işe yarar?
  2. db çekirdeği ile MySQL arasındaki ilişki
  3. MySQL'e nasıl bağlanılır?

    1. Komut satırı

    MySQL, Metin2 sunucusunun kalıcı hafızasıdır. Hesaplar, karakterler, eşyalar, depo, GM listesi ve oyun içi kayıtlar MySQL'deki veritabanlarında tutulur; sunucu kapanıp açıldığında oyunun kaldığı yerden devam etmesi bu sayede olur.

    ⚡ Metin2 sunucusunda MySQL ne işe yarar?

    Metin2 her şeyi MySQL'de tutmaz. Oyun boyunca değişen ve kaybolmaması gereken veri MySQL'dedir; sunucu sahibinin elle hazırladığı ayarların çoğu ise dosyadadır.

    Eşya ve canavar tablolarının MySQL'deki kopyası, yaygın paketlerde her db açılışında txt dosyasıyla ezilir; bu yüzden onları MySQL'de düzenlemek oyuna yansımaz.

    ⚡ db çekirdeği ile MySQL arasındaki ilişki

    Oyuncu bir karakter seçtiğinde oyun çekirdeği karakteri db'den ister. db karakter önbellekteyse onu gönderir, değilse player satırını ve eşyalarını MySQL'den okuyup önbelleğe alır.

    NeMySQL'e ne zaman yazılır
    Karakter satırı (player)Değiştiyse varsayılan olarak 7 dakikada (420 saniye) bir
    Envanter ve ekipman (item)Değiştiyse 5 dakikada (300 saniye) bir
    Depo ve Nesne Marketi Deposu eşyalarıDeğiştiği anda, önbelleğe girmez
    Görev bayrakları ve etkilerOyun çekirdeği kaydettikçe; girişte her seferinde MySQL'den okunur
    Oyundan çıkan karakter10 dakika daha önbellekte kalır, sonra yazılıp önbellekten silinir

    Komut satırı

    Sunucuya SSH ile bağlandıktan sonra MySQL'in kendi istemcisi kullanılır:

    Bash:
    mysql -u YONETICI -p --safe-updates player

    --safe-updates dikkatsizliğe karşı bir sigortadır: WHERE koşulunda anahtar sütun ya da LIMIT bulunmayan UPDATE ve DELETE komutlarını reddeder. Metin2 tablolarında player.id, player.name, account.login, item.id ve item.owner_id anahtarlıdır; bunlarla yazılan sorgular bu modda da çalışır.

    Bash:
    ssh -L 3307:127.0.0.1:3306 kullanici@SUNUCU_IP

    ⚡ Güvenli çalışma alışkanlıkları
    1. Önce SELECT, sonra UPDATE. Değiştireceğin satırları aynı WHERE koşuluyla önce listele, satır sayısının beklediğin gibi olduğunu gör, sonra aynı koşulla UPDATE yaz.
    2. Tek satırı hedefle. Karakterde id, hesapta login kullan; tek satır değişecekse sorgunun sonuna LIMIT 1 ekle.
    3. Geri alma olmadığını bil. Metin2 tabloları MyISAM motorundadır ve işlem (transaction) desteklemez; ROLLBACK bu tablolarda hiçbir şeyi geri getirmez. Yanlış bir UPDATE'ten tek dönüş yolu yedektir.

    ⚡ Önce yedek: neden ve nasıl?

    --no-create-info burada zorunludur: o olmadan dosya DROP TABLE ve CREATE TABLE satırlarıyla başlar ve geri yüklendiğinde bütün item tablosunu silip yalnız bu karakterin eşyalarını bırakır. --replace geri yüklemede değişmiş satırların eski haliyle üzerine yazılmasını sağlar; yedekten sonra eklenmiş satırlar ise silinmez, onlar ayrıca kaldırılır.

    ⚡ Sunucu açıkken neden dikkatli olunmalı?

    Sorun db'nin önbelleğidir. Oyundaki bir oyuncunun Yang'ını MySQL'de 1.000.000'dan 5.000.000'a çıkardığını düşün.

    /flush, oyundan çıkmış bir oyuncunun önbellekteki karakter ve eşya verisini hemen MySQL'e yazar ve önbellekten siler; ardından yapılan düzenlemeyi oyuncu bir sonraki girişinde görür.

    ⚡ İlgili sayfalar
    • Metin2 db conf.txt Ayarları: SQL Satırları, BIND_PORT ve ITEM_ID_RANGE (Server kurma)
    • Metin2 Drop Dosyaları: mob_drop_item ve special_item_group Biçimi (Server kurma)
    • Metin2 item_proto Rehberi: Sütunlar, Türler ve Bayraklar (Server kurma)

    Kategori: Server Kurma Server Kurulumu veritabanı server kurulumu mysql heidisql navicat

    Sıkça Sorulan Sorular (SSS)
    Soru 1: Metin2'de MySQL Nedir? Yeni Başlayanlar İçin Veritabanı rehberindeki ayarlar tüm sunucu yapılarında geçerli mi?
    Evet, rehberde paylaşılan temel mekanikler hem emek (zor) hem de orta/vs'lik sunucu kurgularında doğrudan uygulanabilir; sunucu oranlarına göre küçük ince ayarlar yapılabilir.

    Soru 2: En yüksek verim için hangi sıralama takip edilmeli?
    Öncelikle karakter/sistem temel gereksinimlerini tamamlayıp ardından konu içerisindeki adım adım dizilim ve optimizasyon tavsiyelerini sırasıyla uygulamanız en yüksek performansı sağlar.
 
Geri
Üst