Обновление Openssl исправляет Heartbleed, но приводит к ошибке Magento MySQL

После обновления и обновления ошибки Heartbleed на нашем сервере Ubuntu 12.04 я столкнулся с ошибкой MySQL, отображаемой только на целевых страницах наших сайтов, размещенных на Magento:

SQLSTATE[HY000]: General error: 23 Out of resources when opening file '/tmp/#sql_360_0.MYD' (Errcode: 24)

Прежде чем мы начали, мы сделали резервную копию всего. Затем я выполнил следующие команды:

sudo apt-get clean
sudo apt-get update
sudo apt-get install openssl libssl1.0.0
reboot

Согласно https://filippo.io/Heartbleed/, openssl был успешно исправлен. Теперь все сайты Magento 1.8 не работают с той же ошибкой (см. выше), но сайты Joomla, кажется, не затронуты. Все сайты используют MySQL 5.5.35.

Чтобы узнать, была ли это проблема с версией зависимостей, я также пробовал следующие команды, но это не дало никаких изменений:

sudo apt-get upgrade
reboot

Я также очистил кеш Magento и папки сеанса.


person RNickMcCandless    schedule 14.04.2014    source источник
comment
Возможно, это применимо: SQLSTATE HY000: Общая ошибка: 23 Недостаточно ресурсов. Возможно, вы получите лучшую помощь по сбою сервера или стеку администраторов баз данных Обмен.   -  person jww    schedule 15.04.2014
comment
Кого это может касаться, пожалуйста, объясните отрицательное голосование...   -  person RNickMcCandless    schedule 04.05.2014
comment
Просто предположение, но вопрос, похоже, относится к администратору/конфигуратору, поэтому, вероятно, он мало поможет другим посетителям Stack Overflow. Вероятно, это будет по теме Super User или Server Fault.   -  person jww    schedule 04.05.2014


Ответы (1)


Основываясь на некоторых ограниченных интернет-исследованиях, похоже, что

Общая ошибка: 23 Недостаточно ресурсов при открытии файла

Это способ MySQL сказать

Мне нужно открыть больше файлов, чем позволяет операционная система.

Итак, обновление OpenSLL или что-то другое, произошедшее с момента последней перезагрузки сервера (или перезапуска MySQL?), ограничило количество файлов, которые разрешено открывать приложению.

Основываясь на некоторых старых сообщениях в блоге, похоже, вам понадобится изменить количество разрешенных файлов в

/etc/security/limits.conf

В поисках линий

and add:
mysql soft nofile ....
mysql hard nofile ....

Где .... — это текущее количество файлов, которые вам разрешено открывать. Также похоже, что вы можете FLUSH TABLES на своем сервере MySQL очистить все старые файлы, которые MySQL держит открытыми для таблиц разделов MyISAM.

person Alan Storm    schedule 14.04.2014
comment
Спасибо @Алан Сторм. FLUSH TABLES в MySQL, похоже, решает эту странную проблему. К счастью, после этого мне больше не пришлось настраивать сервер. - person RNickMcCandless; 15.04.2014