- Moderatör
- #1
- 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ı?
- Metin2 sunucusunda MySQL ne işe yarar?
- db çekirdeği ile MySQL arasındaki ilişki
- MySQL'e nasıl bağlanılır?
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ğilseplayersatırını ve eşyalarını MySQL'den okuyup önbelleğe alır.
Ne MySQL'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 etkiler Oyun çekirdeği kaydettikçe; girişte her seferinde MySQL'den okunur Oyundan çıkan karakter 10 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-updatesdikkatsizliğe karşı bir sigortadır:WHEREkoşulunda anahtar sütun ya daLIMITbulunmayan UPDATE ve DELETE komutlarını reddeder. Metin2 tablolarındaplayer.id,player.name,account.login,item.idveitem.owner_idanahtarlı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ı- Önce SELECT, sonra UPDATE. Değiştireceğin satırları aynı
WHEREkoşuluyla önce listele, satır sayısının beklediğin gibi olduğunu gör, sonra aynı koşulla UPDATE yaz. - Tek satırı hedefle. Karakterde
id, hesaptaloginkullan; tek satır değişecekse sorgunun sonunaLIMIT 1ekle. - Geri alma olmadığını bil. Metin2 tabloları MyISAM motorundadır ve işlem (transaction) desteklemez;
ROLLBACKbu tablolarda hiçbir şeyi geri getirmez. Yanlış bir UPDATE'ten tek dönüş yolu yedektir.
Önce yedek: neden ve nasıl?
--no-create-infoburada zorunludur: o olmadan dosyaDROP TABLEveCREATE TABLEsatırlarıyla başlar ve geri yüklendiğinde bütünitemtablosunu silip yalnız bu karakterin eşyalarını bırakır.--replacegeri 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.

