اطلاعیه

بستن
No announcement yet.

InnoDB: Fatal error: cannot allocate memory for the buffer pool

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

  • InnoDB: Fatal error: cannot allocate memory for the buffer pool

    من از وردپرس استفاده میکنم. هر چند وقت یکبار دیتابیس mysql در wordpress به مشکل میخوره و down میشه. توی مرورگر پیغام Error establishing a database connection را نمایش میده و وقتی میخوام به دیتابیس مای اسکیول لاگین کنم همانند زیر خطای Can't connect to local MySQL server through socket رو میگرم.
    کد PHP:
    # mysql -u root -p
    Enter password:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) 
    بعدش لاگ های مای اسکیول رو چک کردم که دیدم خطاهای زیر رو میده:
    کد PHP:
    Version'5.5.60-MariaDB'  socket'/var/lib/mysql/mysql.sock'  port3306  MariaDB Server
    190725  1
    :55:48 [WarningIP address '164.52.24.170' could not be resolvedName or service not known
    190726 05
    :18:28 mysqld_safe Number of processes running now0
    190726 05
    :18:28 mysqld_safe mysqld restarted
    190726  5
    :18:29 [Note] /usr/libexec/mysqld (mysqld 5.5.60-MariaDBstarting as process 25318 ...
    190726  5:18:29 InnoDBThe InnoDB memory heap is disabled
    190726  5
    :18:29 InnoDBMutexes and rw_locks use GCC atomic builtins
    190726  5
    :18:29 InnoDBCompressed tables use zlib 1.2.7
    190726  5
    :18:29 InnoDBUsing Linux native AIO
    190726  5
    :18:30 InnoDBInitializing buffer poolsize 128.0M
    InnoDB
    mmap(137756672 bytesfailederrno 12
    190726  5
    :18:30 InnoDBCompleted initialization of buffer pool
    190726  5
    :18:30 InnoDBFatal errorcannot allocate memory for the buffer pool
    190726  5
    :18:30 [ERRORPlugin 'InnoDB' init function returned error.
    190726  5:18:30 [ERRORPlugin 'InnoDB' registration as a STORAGE ENGINE failed.
    190726  5:18:30 [NotePlugin 'FEEDBACK' is disabled.
    190726  5:18:31 [ERRORUnknown/unsupported storage engineInnoDB
    190726  5
    :18:31 [ERRORAborting

    190726  5
    :18:31 [Note] /usr/libexec/mysqldShutdown complete

    190726 05
    :18:31 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended 
    در میان لاگ ها مشاهده کردم که خطای cannot allocate memory for the buffer pool رو میده. ابتدا سرویس مای اسکیول را که down شده بود restart کردم. سپس وارد شل مای اسکیول شدم. ما میبایست مقدار دو متغیر connect_timeout و max_allowed_packet را افزایش دهیم. برای مشاهده مقدار متغیرهای ذکر شده که در حال حاضر در سرور کانفیگ شده میتوانیم از دستورات زیر در شل مای اسکیول استفاده کنیم.
    کد PHP:
    MariaDB [(none)]> SHOW VARIABLES LIKE 'connect_timeout';
    +-----------------+-------+
    Variable_name   Value |
    +-----------------+-------+
    connect_timeout 10    |
    +-----------------+-------+
    1 row in set (0.00 sec)

    MariaDB [(none)]>
    MariaDB [(none)]> SHOW VARIABLES LIKE 'max_allowed_packet';
    +--------------------+---------+
    Variable_name      Value   |
    +--------------------+---------+
    max_allowed_packet 1048576 |
    +--------------------+---------+
    1 row in set (0.01 sec)

    MariaDB [(none)]> 

    و برای افزایش مقدار متغییرهای بالا دستورات زیر را زدم: (شما مقدارهای خودتان را وارد کنید)
    کد PHP:
    SET GLOBAL connect_timeout=100;
    SET GLOBAL max_allowed_packet=524288000

    همچنین توصیه میشود مطالعه کنید :

    connect_timeout و max_allowed_packet در MySQL/MariaDB چیست؟

    نکات مفید برای برطرف کردن خطاهای رایج در MySQL

    15 ترفند مفید برای Tune کرد (بهینه سازی و بهبود عملکرد) MySQL/MariaDB

    آموزش دستورات MySQL (بخش اول)



    بعدش سرویس mysql رو هم restart کنید که مشکل برطرف بشه.
    کد PHP:
    # systemctl restart mariadb 
    آخرین ویرایش توسط behrooz; در تاریخ/ساعت 07-26-2019, 11:37 PM.
در حال انجام ...
X
کانال تلگرام منطقه لینوکسی ها