آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / MySql

MySql

دلایل start نشدن سرویس Mysql

ابتدا دستور زیر را اجرا می کنیم:

service mysqld status

وضعیت سرویس mysql مشخص میشود.
در صورت عدم فعال بود سرویس دستور زیر را اجرا می کنیم:

service mysqld restart

تا سرویس restart شود.
در صورت عدم فعالیت سرویس باید خطا بررسی شود.
مشکل ممکن است در فایل زیر باشد:

/etc/my.cnf

در این صورت تمام محتوا را حذف و یا آن را تغییر نام دهید و مجددا mysql را restart نمایید.

mv /etc/my.cnf /etc/my.cnf.bak

ممکن است با kill کردن proccess های مرتبط مشکل برطرف شود.

ps -aux | grep mysql
kill -9 <PROCNUMBER>
killall mysqld

سپس سرویس را start می کنیم.
ممکن است مشکل از فضای مربوط به سرور باشد:

df -h
df -ih

ممکن است مشکل در /tmp باشد. تنظیمات بصورت زیر صحیح است:

chown root:root /tmp
chmod 1777 /tmp

می توان log مربوط به آن را نیز بررسی نمود:

/valr/lib/mysql/servername.log

بررسی پارامترهای my.cnf (بخش دوم)

query_cache_limit

حداکثر اندازه قابل ذخیره یک خروجی واحد، در cache است. این متغیر مربوط به query_cache_size است.

query_cache_type

نوع query cache را مشخص میکند.

۰: نتایج در cache ذخیره نمی شود و یا نتایج قابل بازیابی نیست.

۱: تمام query ها cache می شوند.

۲: تنها query هایی که با SELECT SQL_CACHE آغاز می شوند قابل ذخیره است.

ادامه ی مطلب

بررسی پارامترهای my.cnf (بخش اول)

query_cache_size

گاهی بارها و بارها پرس و جوی یکسان بر روی مجموعه داده های مشابه پایگاه داده انجام می شود ، که در هر بار اجرا همان نتایج قبلی را باز می گرداند، MySQL می تواند نتایج را راCache نماید و باعث اجتناب از ایجاد سربار با اجرای مکرر داده ها بارها و بارها شود و Load کاری سرور را کاهش می دهد.

key_buffer_size

key_buffer_size اندازه بافر برای Index های استفاده شده می باشد. بافرهای بزرگ تر سریع تر دستورات SQL را اجرا می نمایند و نتیجه را بازمی گردانند. مقدار آن حداقل یک چهارم میزان حافظه اصلی RAM است و توجه داشته باشید که مقدار آن نباید بیش از نصف میزان حافظه اصلی قرار گیرد. در حالت ایده آل تمام اطلاعات در بافر index می شود. ( به اندازه مجموع تمام فایل های MYI بر روی سرور)

table_cache

به طور پیش فرض ۶۴ است. در هر بار دسترسی Mysql به Table ، آن Table در Cache قرار می گیرد. اگر سیستم به Table های زیادی دسترسی داشته باشد، در صورت Cache بودن فرایندها سریعتر انجام می شود. Mysql از قابلیت multi-threaded پشتیبانی می نماید. ممکن است query های زیادی در لحظه روی Table در حال اجرا باشد و هر یک از query ها روی یک Table باز کار می کند. جهت فعالیت open_tables نیاز به فعال سازی table_cache احساس می شود. در صورت ایجاد open_tables های زیاد، شما باید table_cache را افزایش دهید اگر شما به اندازه کافی حافظه اصلی RAM دارید.

thread_cache

اگر سرور شما دارای load بالایی میباشد، که connection های زیادی دارد، thread cache را برای جلوگیری از ایجاد بار اضافه روی CPU فعال نمایید.

wait_timeout

مدت زمان به ثاینه که Mysql منتظر یک فرایند غیرفعال می ماند و پس این مدت زمان، آن connection بسته میشود البته در اتصال های non-interactive (غیر تعاملی). این پارامتر باید به میزان حداقل ممکن تنظیم شود چرا که تاثیرچندانی در دسترسی و عملکرد سیستم ندارد.

interactive_timeout

مشابه عملکرد wait_timeout و برای connection هایی از نوع interactive. تغییر این مقدار تاثیری در افزایش و یا کاهش کارایی عملکرد برنامه شما ندارد.

دلایل Crash کردن Database

دلایل crash  کردن جداول Database  بصورت زیر می باشد:

سیستم عامل ناپایدار

مشکل با سخت افزار

مشکل برق

خراب شدن داده ها یا فایل index

Kill شدن سرویس SQL در هنگام بروز شدن

برنامه های خارجی که باعث دستکاری داده ها و یا index  شده است.

ادامه ی مطلب