استارت نشدن سرویس MySQL در سرور لینوکس

      ۲ دیدگاه برای استارت نشدن سرویس MySQL در سرور لینوکس

استارت نشدن سرویس MySQL در سرور لینوکس

سرویس پایگاه داده و دیتابیس MySQL یکی از بزرگ ترین و محبوب ترین سرویس های متن باز (نسخه Enterprise هم ارائه میکند) و رایگان تحت لینوکس ، یونیکس ، انواع BSD ها ، ویندوز و … است . تقریبا تمام کنترل پنل های هاستینگ معروف و حتی شناخته نشده تحت لینوکس ، از این سرویس قدرتمند به عنوان سیستم پیش فرض ارائه دیتابیس به یوزر های هاست استفاده میکنند . یکی از بد قلق ترین و سخت ترین ایرادات مشاهده شده در سرویس MySQL در سرور های هاستینگ لینوکس مشکل استارت نشدن سرویس MySQL  است .

استارت نشدن سرویس MySQL در سرور لینوکس

استارت نشدن سرویس MySQL در سرور لینوکس

استارت نشدن سرویس MySQL

مشکل استارت نشدن سرویس MySQL در تمام سرور های هاستینگ لینوکس و به خصوص در سرور های مبتنی بر کنترل پنل های معروف سی پنل و دایرکت ادمین بسیار شایع است . پیام هایی خطایی که در هنگام اجرای دستور استارت سرویس MySQL در خروجی ترمینال مشاهده میشود متفاوت است و معمولا بسته به نوع کامپایل کردن MySQL ، ورژن MySQL مورد استفاده در لینوکس ،  توزیع لینوکس ،  کنترل پنل وب هاستینگ و … پیام خطای خروجی در ترمینال نیز متفاوت است .

برخی از خطا ها و ارور های عدم اجرا شدن سرویس MySQL در لینوکس عبارتند از :

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock

Starting MySQL. ERROR! Manager of pid-file quit without updating file

 Starting MySQL.Manager of pid-file quit without updating file FAILED

MySQL Daemon failed to start

Another MySQL daemon already running with the same unix socket

ERROR 2003 (HY000): Can’t connect to MySQL server on 127.0.0.1

MySQL is not running, but lock exists FAILED

MySQL manager or server PID file could not be found

MySQL is running but PID file could not be found FAILED

Starting MySQL../etc/init.d/mysqld: line 159: kill: (9188) – No such process ERROR

 استارت نشدن سرویس MySQL در لینوکس یکی از پیچیده ترین و سخت ترین ارور های لینوکس است که تریس کردن و رفع آن گاهی به ساعت ها زمان نیاز دارد . در این مقاله فقط به دلایل کلی بروز این خطا و عدم استارت سرویس MySQL میپردازیم ، چرا که در مواردی هر یک از دلایل خود نیاز مند نوشتن چند صفحه مجزا خواهد بود .

وجود خطا در فایل my.cnf

در اولین قدم ، محتویات مربوط به فایل my.cnf را بررسی کنید . اگر تعداد خط ها و مقادیر وارد شده در این فایل زیاد هستند ، با دستور زیر فایل رو موقتا تغییر نام داده و سرویس MySQL را ریستارت کنید :

mv /etc/my.cnf /etc/my.cnf.dis

service mysqld restart

در سرور های سی پنل برای رییستارت کردن سرویس MySQL دستور زیر را اجرا کنید :

service mysql restart

در توزیع های لینوکس (بدون کنترل پنل وب هاستینگ) اوبونتو و دبیان نیز برای ویرایش فایل my.cnf مطابق زیر عمل کنید :

vi /etc/mysql/my.cnf

در صورتی که بعد از تغییر نام (و خارج کردن این فایل از دسترس سرویس MySQL) سرویس پایگاه داده MySQL بدون مشاهده ارور خاضی استارت شد‌ ، پس مشکل را باید در syntax یا مقدار دهی غلط به پارامتر های تاثیر گذار بر MySQL جستجو کرد .

خراب شدن یا Corrupt شدن جداول

این مشکل بیشتر در جدول های Innodb مشاهده میشود ولی در به طور کلی برای جداول Myisam نیز صادق است . در این وضعیت باید بسته به نوع جدول و دلایل Crash کردن دیتابیس ، به رفع مشکل بپردازید .

استارت همزمان چند سرویس MySQL

در حالت عادی ِ، با اجرای دستور service mysqld start اگر سرویس MySQL از قبل اجرا شده باشد ، با یک پیام خطا مبنی بر run بودن سرویس دریافت خواهید کرد . در شرایط خاص ، پیش می آید که چند نسخه یا Instance از این سرویس در حال اجرا باشد که خود سبب ایجاد اختلال در کار MySQL میگرردد . در این وضعیت ممکن است شما هرگز متوجه اجرای همزمان چند سرویس همزمان نشوید و حتی با اجرای دستور service mysqld start یکی از پیام های خطای مربوط به استارت نشدن سرویس MySQL در سرور لینوکس را دریافت کنید . در این وضعیت بهترین کار KILL کردن پراسس های مربوط به سرویس MySQL است .

killall -9 mysql

killall -9 mysqld

killall -9 mysql_safe

service mysqld start OR service mysqld start

استفاده یک daemon دیگر از سوکت MySQL

در این حالت کار سختی پیش روی شما نیست . کافی است تا فایل سوکت مربوط به سرویس MySQL را پاک کرده و سپس سرویس MySQL را استارت کنید :

rm /var/lib/mysql/mysql.sock

service mysqld start OR service mysqld start

قفل شدن MySQL در لینوکس

در مواقع خاص و نادر ، سرویس MySQL استاپ میشود ولی فایل مربوط به Lock یا قفل شدن سرویس MySQL از دایرکتوری مربوطه در لینوکس حذف نمیگردد . در این حالت پیام خطای روی خروجی ترمینال شبیه این خواهد بود :

mysql is dead but subsys locked

برای حل این مشکل کافی است تا فایل مربوط به lock شدن mysql را حذف کنید و مجددا اقدام به استارت کردن سرویس MySQL کنید :

rm /var/lock/subsys/mysqld

service mysqld start OR service mysql start

همانطور که بالاتر نیز به آن اشاره کردیم ، عدم استارت سرویس MySQL در برخی موارد بسیار پیچیده و گیج کننده خواهد بود و رفع آن همیشه به استناد به موارد آموزش داده شده امکان پذیر نیست . عوامل بسیار زیاد دیگری نیز میتوانند سبب استارت نشدن سرویس MySQL روی سرور لینوکس شوند که فقط با Trace کردن کامل و حرفه ای سرور لینوکس امکان رفع این ایراد میسر خواهد بود . در صورت بروز این مشکل در سرور های لینوکس خود ، حتما حل مشکل را به دست یک فرد با تجربه بسپارید ، چرا که در صورت انجام یک اشتباه ساده ، امکان آسیب دیدن جدی جدول های دیتابیس وجود خواهد داشت . 

برای حل مشکل استارت نشدن سرویس MySQL در سرور لینوکس میتوانید از خدمات کانفیگ سرور ما استفاده کنید . درخواست کانفیگ سرور خود را برای ما تیکت کنید تا در کمترین زمان ممکن به درخواست شما رسیدگی شود .

پاسخ به کلیه سوالات شما در زمینه وب هاستینگ و مدیریت سرور در انجمن کامپایلر

2 thoughts on “استارت نشدن سرویس MySQL در سرور لینوکس

  1. رضا

    درود بر شما
    لطف کنید در مورد کانفیگ mysql5.5 آموزش قرار بدید
    بجای متغییرهای my.conf در ورژنهای قبل چکار باید کرد؟

    Reply

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *