در برخی اوقات که قصد نصب Extensionهای سنگین و پرحجم دارید، با خطایی مشابه مورد زیر مواجه میشوید:
MySQL server has gone away SQL=SELECT a.id AS value, a.title AS text, a.level, a.menutype, a.type, a.template_style_id, a.checked_out FROM jos_menu AS a LEFT JOIN `jos_menu` AS b ON a.lft > b.lft AND a.rgt
دلیل شایع وقوع این مشکل
این خطا زمانی رخ میدهد که برای انجام عمل مورد نظر از FTP استفاده میکنید و تنظیمات به درستی اعمال نشده است.
راه حل رفع این مشکل
برای رفع این مشکل به پنل مدیریت جوملا مراجعه و مسیر زیر را دنبال کنید:
Global Configuration > Settings > FTP settings
سپس Enable FTP را از yes به no تغییر دهید. اکنون میتوانید افزونه مورد نظر را مجدداً نصب کنید.
دلایل دیگر وقوع این خطا
این خطا به دلایل متعدد دیگر نیز روی میدهد که از جمله میتوان به زمان ایجاد فایلهای حجیم PDF، بررسی خروجی و اطلاعات ثبت شده در فرمهای مختلف موجود در وبسایت و یا مشاهده سفارشهای ثبت شده در فروشگاه ساز VirtueMart اشاره کرد. خطایی که در این مواقع روی میدهد، موردی مشابه خطای زیر است:
Error displaying the error page: Could not connect to MySQL.: MySQL server has gone away SQL=SELECT SQL_CALC_FOUND_ROWS o.*, CONCAT_WS(‘ ‘,u.first_name,u.middle_name,u.last_name) AS order_name ,u.email as order_email,pm.payment_name AS payment_method FROM #__virtuemart_orders as o LEFT JOIN #__virtuemart_order_userinfos as u ON u.virtuemart_order_id = o.virtuemart_order_id AND u.address_type=”BT” LEFT JOIN #__virtuemart_paymentmethods_en_gb as pm ON o.virtuemart_paymentmethod_id = pm.virtuemart_paymentmethod_id ORDER BY created_on DESC LIMIT 0, 100
دلیل وقوع خطای فوق
آنچه موجب وقوع خطای فوق شده، Query دیتابیس ذکر شده است که سرور در واکنش به پروسه مربوط به آن، ارتباط را قطع میکند و این مورد موجب مواجهه با خطای از دسترس خارج شدن MySQL Server میشود. برای مثال:
- انجام پروسه مربوطه به درازا میانجامد و فرصت ارائه شده از طرف سرور به اتمام میرسد. در این صورت ارتباط و در نتیجه پروسهی ذکر شده قطع میشود.
- یک Packet ناقص و یا با حجم بالا به سمت سرور ارسال میشود و سرور به اشتباه از دریافت آن پاکت امتناع کرده و آن را حذف میکند. در واقع زمانی که MySQL آن پاکت بزرگ و یا ناقص را دریافت کند، اینگونه برداشت میکند که پاکت مذکور برای کاربری به غیر از خودش میبایست ارسال میشد و با فرض نادرست عدم مالکیت آن Packet، ارتباط را قطع میکند.
خطای از دسترس خارج شدن پایگاه داده یا همان MySQL server has gone away در متن فوق، بر خلاف ظاهر متن خطا، به معنای وجود Time out به هنگام اجرای Query مورد نظر است و در واقع این عبارت یعنی زمان اجرای کوئری مورد نظر بسیار طولانی شده که در نهایت موجب بروز این خطا گردیده است.
راه حل رفع مشکل
موارد زیر را جهت رفع مشکل لازم است انجام دهید:
1- فرمهای موجود در وبسایت، هستهی جوملا! و سایر موارد موجود را بروزرسانی نمایید.
مواردی که در ادامه ذکر میشوند، در سرورهای لینوکسی قابل اجرا و نیازمند داشتن دسترسی روت سرور (SSH) هستند.
2- مسیر زیر را با استفاده از ویرایشگر nano یا vi باز کنید:
/etc/my.cnf
مقدار Max_allowed_packet را به 256M تغییر دهید. سپس آن را ذخیره کنید و MySQL را ریست نمایید:
/etc/init.d/mysql restart
در صورت عدم رفع مشکل مجددا فایل my.cnf را باز کنید و عبارات زیر را به آن اضافه نمایید:
wait_timeout=120 interactive_timeout=120 net_write_timeout=120
همچنین در صورت استفاده از cPanel میتوانید موارد زیر را در آن افزایش دهید:
max_execution_time max_input_time
مجددا MySQL را Restart نمایید.
چنانچه مشکل مذکور همچنان ادامه داشت، به کمک مدیر سرور لاگهای MySQL را بررسی کنید. در بسیاری از موارد دلیل وقوع این مشکل، وجود خطا در خصوص جدول «ysql.innodb_index_stats» میباشد. در این صورت میتوانید ابتدا از Repair دیتابیس شروع کنید. در صورت عدم رفع مشکل، لازم است MySQL را ضمن ایجاد بکاپ حذف و مجددا ایجاد نمایید و درونریزی (Import) اطلاعات را در آن انجام دهید. چنانچه انجام این کار برای شما مقدور نمیباشد و از پنل مدیریتی cPanel استفاده میکنید، موارد زیر را انجام دهید:
با استفاده از فرمان زیر، به مسیر ذخیره سازی دیتابیس های MySQL مراجعه کنید:
cd /var/lib/mysql
با اجرای فرامین زیر، فایل «ib_logfile0» و «ib_logfile1» را در آن مسیر یافته و آنها را به مسیری دیگر منتقل و مالکیت آنها را تغییر دهید:
mv ib_logfile0 /backup/tmp/ mv ib_logfile1 /backup/tmp/ cd /backup/tmp/ Chown root:root ib_logfile0 Chown root:root ib_logfile1
سپس MySQL را ریست نمایید:
Service mysql restart
حال میبایست مشکل مذکور برطرف شده باشد.
-
0
-
0
-
0
-
0
-
0
-
0