MySQL 5.6 CentOS 6 не запускается

Я столкнулся с проблемой невозможности запустить mysqld версии 5.6 на бесплатном хостинге VPS. И, как я уже писал в блоге, сервер очень ограничен в ресурсах. Так что у серьезных дядек, с серьезными серверами, подобных проблем возникать не должно.
При анализе лога, обнаружил:
2014-10-27 20:33:55 3421 [Note] InnoDB: Memory barrier is not used
2014-10-27 20:33:55 3421 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-10-27 20:33:55 3421 [Note] InnoDB: Using Linux native AIO
2014-10-27 20:33:55 3421 [Note] InnoDB: Using CPU crc32 instructions
2014-10-27 20:33:55 3421 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-10-27 20:33:55 3421 [Note] InnoDB: Completed initialization of buffer pool
InnoDB: Error: pthread_create returned 11
141027 20:33:55 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Гугление помогло найти методику решения таких проблем.
  1. /var/log/ - Тут логи. Смотреть их обязательно, при любой проблеме.
  2. perror <номер ошибки> - Выдаст информацию по номеру ошибки.
  3. /proc/user_beancounters - Здесь информация о использовании ресурсов, как я понимаю. Среди всего прочего, есть и счетчик ошибок. Так что, если появляются ошибки с памятью - следует смотреть сюда.

Решение проблемы: 
Как оказалось, достаточно вписать в начало функции start скрипта /etc/init.d/mysqld, отключение ограничений на размер стека:
ulimit -s unlimited
Важно при этом отметить, что команда эта встроена в shell и соответственно, влияет только на запускаемые из shell приложения. Тут более подробное описание команды, ulimit умеет указывать ограничения и для других системных ресурсов.

Комментарии

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU

Git и Yandex.Disk