من از وردپرس استفاده میکنم. هر چند وقت یکبار دیتابیس mysql در wordpress به مشکل میخوره و down میشه. توی مرورگر پیغام Error establishing a database connection را نمایش میده و وقتی میخوام به دیتابیس مای اسکیول لاگین کنم همانند زیر خطای Can't connect to local MySQL server through socket رو میگرم.
بعدش لاگ های مای اسکیول رو چک کردم که دیدم خطاهای زیر رو میده:
در میان لاگ ها مشاهده کردم که خطای cannot allocate memory for the buffer pool رو میده. ابتدا سرویس مای اسکیول را که down شده بود restart کردم. سپس وارد شل مای اسکیول شدم. ما میبایست مقدار دو متغیر connect_timeout و max_allowed_packet را افزایش دهیم. برای مشاهده مقدار متغیرهای ذکر شده که در حال حاضر در سرور کانفیگ شده میتوانیم از دستورات زیر در شل مای اسکیول استفاده کنیم.
و برای افزایش مقدار متغییرهای بالا دستورات زیر را زدم: (شما مقدارهای خودتان را وارد کنید)
همچنین توصیه میشود مطالعه کنید :
connect_timeout و max_allowed_packet در MySQL/MariaDB چیست؟
نکات مفید برای برطرف کردن خطاهای رایج در MySQL
15 ترفند مفید برای Tune کرد (بهینه سازی و بهبود عملکرد) MySQL/MariaDB
آموزش دستورات MySQL (بخش اول)
بعدش سرویس mysql رو هم restart کنید که مشکل برطرف بشه.
کد 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' port: 3306 MariaDB Server
190725 1:55:48 [Warning] IP address '164.52.24.170' could not be resolved: Name or service not known
190726 05:18:28 mysqld_safe Number of processes running now: 0
190726 05:18:28 mysqld_safe mysqld restarted
190726 5:18:29 [Note] /usr/libexec/mysqld (mysqld 5.5.60-MariaDB) starting as process 25318 ...
190726 5:18:29 InnoDB: The InnoDB memory heap is disabled
190726 5:18:29 InnoDB: Mutexes and rw_locks use GCC atomic builtins
190726 5:18:29 InnoDB: Compressed tables use zlib 1.2.7
190726 5:18:29 InnoDB: Using Linux native AIO
190726 5:18:30 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137756672 bytes) failed; errno 12
190726 5:18:30 InnoDB: Completed initialization of buffer pool
190726 5:18:30 InnoDB: Fatal error: cannot allocate memory for the buffer pool
190726 5:18:30 [ERROR] Plugin 'InnoDB' init function returned error.
190726 5:18:30 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
190726 5:18:30 [Note] Plugin 'FEEDBACK' is disabled.
190726 5:18:31 [ERROR] Unknown/unsupported storage engine: InnoDB
190726 5:18:31 [ERROR] Aborting
190726 5:18:31 [Note] /usr/libexec/mysqld: Shutdown complete
190726 05:18:31 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended
کد 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