راه حل خطای Metin2 "MySQL Server Has Gone Away".
هنگامی که اتصال بین فایل های بازی (بازی/db) و پایگاه داده (MySQL/MariaDB) در سرورهای Metin2 PVP قطع شود، صفحه syserr.txt یا Putty ظاهر می شود. "سرور MySQL از بین رفته است" (کد خطا: 2006) هشدار ظاهر می شود. هنگامی که این خطا رخ می دهد، سرور یا اصلا باز نمی شود یا کانال های باز (CH) به طور ناگهانی بسته می شوند. برای حل کامل مشکل می توانید مراحل زیر را دنبال کنید.
روش 1: افزایش اندازه بسته در فایل my.cnf (موثرترین راه حل)
شایعترین دلیل این خطا این است که بسته دادهای که سرور بازی در تلاش برای ارسال یکباره به MySQL است (مثلاً هنگام بارگیری یک آیتم_پروتو یا داده بازیکن بزرگ) از حداکثر محدودیتی که MySQL اجازه میدهد فراتر رود. برای افزایش حد:
- با Filezilla یا WinSCP به سرور خود متصل شوید.
- به طور کلی در زیرساخت FreeBSD
/var/db/mysql/یا/etc/واقع در دایرکتوری my.cnf فایل را در رایانه خود دانلود کرده و با یک ویرایشگر متن باز کنید. - در پرونده
[mysqld]خطوط فرمان زیر را زیر تگ اضافه کنید (در صورت وجود، مقادیر آنها را مانند این به روز کنید):max_allowed_packet = 64M wait_timeout = 28800 interactive_timeout = 28800
- فایل را ذخیره کرده و دوباره در سرور بارگذاری کنید و سرویس MySQL را از طریق Putty با دستور زیر راه اندازی مجدد کنید:
service mysql restart
روش 2: بررسی تنظیمات زمان پایان پایگاه داده
وقتی تراکم پخش کننده فعلی در سرور کاهش می یابد یا درخواست های درون بازی زمان زیادی می برد، MySQL می تواند به طور خودکار اتصالات بیکار را ببندد. وقتی فایل های بازی شما سعی می کنند از طریق این اتصال بسته کار کنند، این خطا را دریافت می کنند.
- آنچه در روش 1 در بالا اضافه کردیم
wait_timeoutوinteractive_timeoutمقادیر با افزایش مدت زمانی که پایگاه داده قبل از قطع شدن منتظر می ماند در ثانیه (28800 ثانیه = 8 ساعت) از این مشکل جلوگیری می کند.
روش 3: تمیز کردن جداول چوب آسیب دیده و متورم
جداول در پایگاه داده گزارش در Navicat (مثلا:log.command_log،log.shout_log) به اندازه های بسیار بزرگی رسیده است، MySQL ممکن است از کار بیفتد و در حین پرس و جو قطع شود.
- برنامه Navicat را باز کنید و "ورود" وارد پایگاه داده شوید.
- روی جداول log که خیلی بزرگ هستند کلیک راست کنید و میز خالی جداول را با گزینه (Truncate) خالی کنید.
- پس از پردازش، جداول را به طور کامل انتخاب کرده و کلیک راست کنید Maintain -> Optimize Tables انجامش بده
روش 4: رم سرور و نارسایی سواپ
اگر ظرفیت RAM سرور FreeBSD شما ناکافی باشد، سیستم عامل می تواند به طور لحظه ای سرویس MySQL (mysqld) را در پس زمینه (عملیات کشتن) متوقف کند تا از فرآیندهای با اولویت بالا محافظت کند. از طریق بتونهtop -cمیزان مصرف رم خود را با تایپ کردن بررسی کنید. اگر RAM در حد مجاز است، باید بسته سرور خود را ارتقا دهید یا تعداد CH غیر ضروری را کاهش دهید.
این مقاله به طور ویژه برای PvPServer تهیه شده است.