چگونه open_files_limit در mysql را افزایش دهم؟
در صورتیکه سرویس mysql سرور شما با مشکل مواجه شده و در لاگ سرویس خطای زیر را مشاهده می کنید:
[ERROR] Error in accept: Too many open files
جهت رفع مشکل آموزش زیر را دنبال کنید:
MySQL به طور خودکار open_files_limit خود را به هر مقدار که ulimit سیستم تنظیم شده است تنظیم می کند - به طور پیش فرض 1024 خواهد بود.
نکته MySQL: نمی تواند open_files_limit بالاتر از آنچه که تحت نام ulimit 'files open' مشخص شده است تنظیم کند - شما می توانید آن را پایین تر تنظیم کنید، اما نه بالاتر از حد مجاز فایل.
فایل limits.conf را باز نموده
nano /etc/security/limits.conf
و خطوط زیر را در آن اضافه کنید:
mysql hard nofile 1024000
mysql soft nofile 1024000
فایل زیر را باز نموده:
nano /etc/security/limits.d/90-nproc.conf
و خطوط زیر را در آن اضافه کنید:
* soft nofile 1024000
* hard nofile 1024000
* soft nproc 10240
* hard nproc 10240
root soft nproc unlimited
من 1024000 را انتخاب کردم که نسبتا بالا است شما مطمئنا این را می توانید پایین تر مانند '102400' انتخاب کنید.
سپس فایل my.cnf را باز نموده:
nano /etc/my.cnf
و خطوط زیر را در آن اضافه کنید:
[mysqld]
open_files_limit = 1024000
در پایان سرویس mysql را ریست کنید.
service mysqld restart
با دستور زیر نیز می توانید، اعمال تغییرات را بررسی کنید:
ulimit -a
در خروجی مقدار open files را می توانید مشاهده کنید.