У меня проблема, которую я не могу понять, по какой-то причине мой сервер MySQL продолжает давать сбой через 30-40 минут, сама загрузка сервера не слишком высока, это даже не 0,5 (для машины с 2 процессорами), у меня пытался просмотреть журнал ошибок /var/log/mysql/error.log, но не смог найти ни одной подсказки, но я буду первым, кто признает, что могу быть из-за недостатка знаний.
сервер - ubuntu 12.04 с базовыми настройками лампы .. каждый раз при сбое сервера мне приходится вручную перезапускать mysql, иначе он не будет работать.
это журнал ошибок, который у меня есть:
130623 15:09:18 [Note] Plugin 'FEDERATED' is disabled.
130623 15:09:18 InnoDB: The InnoDB memory heap is disabled
130623 15:09:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130623 15:09:18 InnoDB: Compressed tables use zlib 1.2.3.4
130623 15:09:18 InnoDB: Initializing buffer pool, size = 128.0M
130623 15:09:18 InnoDB: Completed initialization of buffer pool
130623 15:09:18 InnoDB: highest supported file format is Barracuda.
130623 15:09:18 InnoDB: Waiting for the background threads to start
130623 15:09:19 InnoDB: 5.5.31 started; log sequence number 2220260
130623 15:09:19 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
130623 15:09:19 [Note] - '127.0.0.1' resolves to '127.0.0.1';
130623 15:09:19 [Note] Server socket created on IP: '127.0.0.1'.
130623 15:09:19 [Note] Event Scheduler: Loaded 0 events
130623 15:09:19 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.31-0ubuntu0.12.04.2' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
130623 15:27:48 [Note] Plugin 'FEDERATED' is disabled.
130623 15:27:48 InnoDB: The InnoDB memory heap is disabled
130623 15:27:48 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130623 15:27:48 InnoDB: Compressed tables use zlib 1.2.3.4
130623 15:27:48 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130623 15:27:48 InnoDB: Completed initialization of buffer pool
130623 15:27:48 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130623 15:27:48 [ERROR] Plugin 'InnoDB' init function returned error.
130623 15:27:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130623 15:27:48 [ERROR] Unknown/unsupported storage engine: InnoDB
130623 15:27:48 [ERROR] Aborting
130623 15:27:48 [Note] /usr/sbin/mysqld: Shutdown complete
130623 15:27:49 [Note] Plugin 'FEDERATED' is disabled.
130623 15:27:49 InnoDB: The InnoDB memory heap is disabled
130623 15:27:49 InnoDB: Mutexes and rw_locks use GCC atomic builtins
130623 15:27:49 InnoDB: Compressed tables use zlib 1.2.3.4
130623 15:27:49 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
130623 15:27:49 InnoDB: Completed initialization of buffer pool
130623 15:27:49 InnoDB: Fatal error: cannot allocate memory for the buffer pool
130623 15:27:49 [ERROR] Plugin 'InnoDB' init function returned error.
130623 15:27:49 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
130623 15:27:49 [ERROR] Unknown/unsupported storage engine: InnoDB
130623 15:27:49 [ERROR] Aborting
Кто-нибудь видит то, чего не вижу я?
Отредактируйте свой /etc/mysql/my.cnf, добавив эту строку
innodb_buffer_pool_size = 64M
А затем перезапустите mysql
service mysql restart
Хорошо использовать Замена если у вас недостаточно памяти. Ознакомьтесь с этой хорошей статьей:
https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
У меня это отлично работает.
Умм, это дважды появляется в вашем файле журнала
InnoDB: Fatal error: cannot allocate memory for the buffer pool
Добавьте файл подкачки, чтобы прояснить это.
Вы можете выполнить это, чтобы настроить страницу подкачки:
http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html