درمورد سرویس MySQL در سرور لینوکس

در این پست قصد داریم درمورد سرویس MySQL در سرور لینوکس به بحث و تحلیل بپردازیم. در ابتدای مقاله بصورت مختصر و مفید سرویس MySQL را معرفی می کنیم و در ادامه به بررسی مشکل استارت نشدن سرویس MySQL خواهیم پرداخت. امیدواریم مقاله سرویس MySQL در سرور لینوکس برای شما نیز مفید و کاربردی باشد. با ما همراه باشید.

سرویس MySQL در سرور لینوکس

سرویس MySQL در سرور لینوکس

سرویس پایگاه داده و دیتابیس MySQL یکـی از بزرگ ترین و محبوب ترین سرویس های متن باز (ورژن Enterprise هم عرضه می کند ) و رایگان تحت لینوکس ، یونیکس ، اقسام BSD ها ، windows و … می باشد. نسبتا تمام مدیریـت پنل های هاستینگ مشهـور و حتی شناخته نشده تحت لینوکس ، از این سرویس قدرتمند به عنوان سیستم پیش فرض عرضه دیتابیس به یوزر های هاست بهره گیری میکنند . یکـی از بد قلق ترین و سخت ترین ایرادات مشاهده شده در سرویس 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 در سرور لینوکس رسیدیم. از توجه شما سپاسگزاریم . برای مشاهده اطلاعات بیشتر درمورد سرور مجازی سنگاپور و سرور مجازی آلمان کلیک نمایید.