برای دیتابیس های بزرگ و سنگین بهترین گزینه کار کردن با InnoDB است. اما به هر حال گاهی اوقات تنظیمات اشتباه ممکن است innodb را با مشکل روبه رو کند. ورژن های قدیمی تر MySQL هنگامی که InnoDB بخواهد از مموری سیستم استفاده کند خطای InnoDB memory heap is disabled را گزارش خواهند داد.
همچنین توصیه میشود مطالعه کنید :
آموزش نصب MariaDB 10 در لینوکس (Debian - Ubuntu - RedHat - CentOS)
آموزش نصب MySQL 8 در اوبونتو
علت نمایش خطای “InnoDB memory heap is disabled” چیست؟
این Error مربوط به ورژن های پایین تر از 5.6 در MySQL میباشد. و این خطا مشخص میکند که InnoDB در حال استفاده از مموری داخلی سیستم به جای مموری مشخص شده خودش میباشد. InnoDB میتواند از مموری خودش و یا مموری سیستم عامل استفاده کند. ما میتوانیم این مورد را با مقدار innodb_use_sys_malloc مدیریت کنیم. اگر مقدار innodb_use_sys_malloc برابر با ON یا 1 تعریف شده باشد در نتیجه InnoDB از مموری داخلی سیستم استفاده میکند.
به هر حال اگر مقدار innodb_use_sys_malloc را برابر با 0 تعریف کنید innodb از مموری خودش استفاده خواهد کرد و دیگر error بالا را در log مای اسکیول دریافت نخواهید کرد.
نحوه رفع خطا
برای حل این مشکل شما میتوانید مقدار innodb_use_sys_malloc را برابر با 0 قرار دهید. در ابتدا میتوانید از فعال بودن (ON یا 1) این مقدار با استفاده از دستور زیر مطمئن شوید.
و یا همچنین از دستور زیر استفاده کنید که در صورت تعریف در فایل تنظیمات مای اسکیول (my.cnf) میتوانیم آنرا مشاهده کنیم.
و در نهایت در صورت فعال بودن میتوانید آنرا با استفاده از دستور زیر غیرفعال کنید.
و در آخر برای اعمال تغییرات سرویس MySQL را ریستارت کنید.
سپس میتوانید در فایل Log مشاهده کنید که دیگر خطای بالا را نخواهید داشت.
همچنین توصیه میشود مطالعه کنید :
آموزش دستورات MySQL (بخش اول)
دستورات Backup / Restore و Import / Export دیتابیس MySQL/MariaDB
ترفند های بهینه سازی و افزایش سرعت دیتابیس MySQL/MariaDB
موفق باشید
همچنین توصیه میشود مطالعه کنید :
آموزش نصب MariaDB 10 در لینوکس (Debian - Ubuntu - RedHat - CentOS)
آموزش نصب MySQL 8 در اوبونتو
علت نمایش خطای “InnoDB memory heap is disabled” چیست؟
این Error مربوط به ورژن های پایین تر از 5.6 در MySQL میباشد. و این خطا مشخص میکند که InnoDB در حال استفاده از مموری داخلی سیستم به جای مموری مشخص شده خودش میباشد. InnoDB میتواند از مموری خودش و یا مموری سیستم عامل استفاده کند. ما میتوانیم این مورد را با مقدار innodb_use_sys_malloc مدیریت کنیم. اگر مقدار innodb_use_sys_malloc برابر با ON یا 1 تعریف شده باشد در نتیجه InnoDB از مموری داخلی سیستم استفاده میکند.
به هر حال اگر مقدار innodb_use_sys_malloc را برابر با 0 تعریف کنید innodb از مموری خودش استفاده خواهد کرد و دیگر error بالا را در log مای اسکیول دریافت نخواهید کرد.
کد:
152235 19:19:25 InnoDB: The InnoDB memory heap is disabled
نحوه رفع خطا
برای حل این مشکل شما میتوانید مقدار innodb_use_sys_malloc را برابر با 0 قرار دهید. در ابتدا میتوانید از فعال بودن (ON یا 1) این مقدار با استفاده از دستور زیر مطمئن شوید.
و یا همچنین از دستور زیر استفاده کنید که در صورت تعریف در فایل تنظیمات مای اسکیول (my.cnf) میتوانیم آنرا مشاهده کنیم.
کد:
less /etc/my.cnf | grep innodb_use_sys_malloc Output: innodb_use_sys_malloc = 1
کد:
innodb_use_sys_malloc = 0
کد:
# systemctl restart mariadb
همچنین توصیه میشود مطالعه کنید :
آموزش دستورات MySQL (بخش اول)
دستورات Backup / Restore و Import / Export دیتابیس MySQL/MariaDB
ترفند های بهینه سازی و افزایش سرعت دیتابیس MySQL/MariaDB
موفق باشید