Mysql'in güncel sürümlerinde eski dosya veritabanını çalıştırma

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 139

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,
Mysql 5.5'ten sonra sql_mode seçeneği ile tablolarda belirli şeyleri kontrol etmenizi sağlayan ayarlar bulunmaktadır.

Peki sahip olduğunuz eski bir dosyayı çalıştırmak istediğinizde ne yapmalısınız?
Buna basit bir çözüm olarak aşağıdaki yöntemi uyguladım.

Kod:
/usr/locale/my.cnf

Kod:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Kod:
sql_mode=

Kod:
service mysql-server restart

Mysql'in Güncel Sürümlerinde Eski Dosya Veritabanını Çalıştırma

Metin2 Lobby olarak Metin2 sunucuları için gerekli olan veritabanı yönetimi konusunda birçok kullanıcıyla buluşuyoruz. Özellikle eski Metin2 sunucularında kullanılan veritabanı yapılarının, günümüzdeki MySQL ve MariaDB sürümlerinde sorunsuz çalışması, bazı durumlarda dikkat isteyen bir süreçtir. Bu yazıda, eski veritabanı dosyalarının güncel MySQL sürümlerinde nasıl çalıştırılabileceğini detaylıca ele alacağız.

MySQL ve MariaDB Versiyon Uyumluğu

Metin2 veritabanları genellikle daha eski versiyonlar olan MySQL 5.5 ya da 5.7 ile oluşturulmuştur. Ancak günümüzde MySQL 8.0 gibi daha güncel sürümler kullanıldığında, eski veritabanı şemaları bazen uyumsuzluk yaşayabilir. Bu uyumsuzluklar genellikle şifreleme algoritmaları, öntanımlı karakter seti (utf8mb4), anahtar kelimeler veya veri tipleriyle ilgilidir.

Eski DB Dosyalarının İçe Aktarılması

Eski bir Metin2 DB dosyasını güncel bir ortamda çalıştırmak için ilk adım, dosyanın doğru bir şekilde dışa aktarılmış halini içe aktarmaktır. Bu işlem genellikle bir .sql dosyası üzerinden gerçekleştirilir. Eğer bu dosya doğru formatta değilse, import sırasında hata alabilirsiniz. Özellikle utf8 karakter setiyle hazırlanmış eski tablolar, utf8mb4 destekleyen yeni sürümlerde sorun yaratmadan dönüştürülebilir.

SQL Mode Ayarlamaları

Güncel MySQL sürümlerinde varsayılan SQL_MODE ayarları, eski veritabanı yapılarında kullanılan bazı ifadeleri reddedebilir. Örneğin, eski Metin2 DB dosyalarında GROUP BY kullanımında eksiklikler olabilir. Bu gibi durumlar için SQL_MODE'ı geçici olarak değiştirebilirsiniz:

SET sql_mode = '';

Bu komut, daha esnek bir import süreci sağlayabilir.

Tablo Dönüştürmeleri ve Karakter Seti Ayarları

Eski Metin2 DB şemalarında kullanılan utf8 karakter seti, emoji ve bazı özel karakterler için yeterli olmayabilir. Bu nedenle, veritabanını içe aktardıktan sonra şu komutu kullanarak tüm tabloları utf8mb4 formatına dönüştürmeniz önerilir:

ALTER DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Bu işlem, veri kaybı olmadan veritabanınızın daha geniş bir karakter desteğine sahip olmasını sağlar.

Yetkilendirme ve Kullanıcı Hesapları

Eski Metin2 DB yapılarında bulunan account, player, guild gibi tablolar, doğru şekilde kullanıcı hesapları ve yetkilerle eşleşmelidir. Özellikle MySQL 8.0 sürümünde şifreleme yöntemi değiştiği için, eski kullanıcı hesaplarını aktarmada dikkat edilmelidir. Gerekirse yeni bir kullanıcı oluşturup, eski şifreleri uygun formatta aktarabilirsiniz.

Backup ve Test Ortamı

Herhangi bir Metin2 DB dönüşümü yapmadan önce, mevcut veritabanınızın yedeklenmesi büyük önem taşır. DB backup işlemleri, başarısız bir import sonrası veri kaybını önler. Ayrıca, test ortamında denemeler yaparak üretim veritabanınızı riske atmayın.

Sonuç

Güncel MySQL sürümlerinde eski Metin2 DB dosyalarını çalıştırmak, doğru adımlarla ve dikkatle mümkündür. Karakter seti uyumu, SQL modu ayarlamaları ve uygun import yöntemleriyle, eski sunucu verilerinizi yeni sistemlerde sorunsuzca kullanabilirsiniz. Metin2 Lobby, Metin2 geliştiricileri ve oyuncuları için veritabanı konusunda her zaman destek vermeye devam edecektir.


Running Legacy Database Files on Current MySQL Versions

Metin2 Lobby aims to assist users regarding database management for Metin2 servers. Especially, legacy database structures used in older Metin2 servers may require careful handling when running on today's MySQL and MariaDB versions. In this article, we will examine in detail how to run old database files on current MySQL versions.

MySQL and MariaDB Version Compatibility

Metin2 databases were generally created with older versions like MySQL 5.5 or 5.7. However, when using newer versions such as MySQL 8.0, older database schemas might face compatibility issues. These issues usually stem from encryption algorithms, default character sets (utf8mb4), keywords, or data types.

Importing Legacy DB Files

To run an old Metin2 DB file on a modern system, the first step is to correctly import the exported .sql file. If the file is not in the correct format, you may encounter errors during import. Specifically, tables prepared with the utf8 character set can be converted without issues to newer versions supporting utf8mb4.

SQL Mode Adjustments

Default SQL_MODE settings in newer MySQL versions may reject certain expressions used in older database structures. For instance, incomplete GROUP BY usage in old Metin2 DB files could cause errors. You can temporarily change the SQL_MODE to resolve such issues:

SET sql_mode = '';

This command allows a more flexible import process.

Table Conversions and Character Set Configurations

The utf8 character set used in older Metin2 DB schemas may not support emojis or special characters. Therefore, after importing the database, it's recommended to convert all tables to utf8mb4 format using the following commands:

ALTER DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

This process ensures broader character support without data loss.

Authorization and User Accounts

Tables such as account, player, and guild in older Metin2 DB structures must properly match user accounts and permissions. In particular, due to changes in encryption methods in MySQL 8.0, care must be taken when transferring old user accounts. If necessary, create new users and transfer old passwords in a compatible format.

Backup and Testing Environment

Before performing any Metin2 DB conversion, backing up your existing database is crucial. DB backup operations prevent data loss in case of a failed import. Also, avoid risking production databases by testing in a separate environment.

Conclusion

Running old Metin2 DB files on current MySQL versions is possible with careful attention and correct steps. Through proper character set adjustments, SQL mode configurations, and suitable import methods, you can seamlessly use your old server data on new systems. Metin2 Lobby will continue providing support for developers and players regarding database matters.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt