При работе с сайтом Joomla вы получили сообщение о такой ошибке: jtablesession::StoreFailed DB function failed with error number….. Разберем, что это за ошибки и как ее исправить на двух примерах.
Про Ошибки в таблице сессий базы данных
Сообщения сервера начинающиеся с jtablesession::StoreFailed, DB function failed error это ошибки в таблице сессий базы данных. Далее в тексте сообщения следует разъяснение ошибки, а из разъяснения понятны и пути исправления. Невозможно предвидеть все возможные ошибки, можно понять принцип их исправления. Рассмотрим три примера ошибок jtablesession::Store Failed, DB function failed error.
Ошибка доступа к таблице сессий базы данных
jtablesession::Store Failed DB function failed with error number 1146 Table 'database_name.jos_session' doesn't exist SQL=INSERT INTO `jos_session` (`session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES ('eb894feb5ff2dcc5f12cfc43f071fd8d','1270548439','','0','1','0' )
Анализ ошибки
Из перевода сообщения видим, что это ошибка доступа (doesn'texist). Происходит она в таблице [jos_session]. Произошла она при попытке оператора SQL=INSERTINTRO вставить в таблицу, значения VALUES.
Исправление ошибки
- Проверьте префикс таблицы. Он должен совпадать с префиксом таблиц БД указанным в файле configuration.php в строке: public $dbprefix =
- Проверить наличие в базе данных таблицы [jos_session]
- Если таблица отсутствует, попробуйте ее восстановить. Для этого сделайте SQL запрос к БД следующего вида:
REPAIR TABLE jos_session;
- Если таблица не восстанавливается и у вас есть резервная копия базы данных в формате SQL, то удалите существующую базу данных и импортируйте резервную копию БД.
- Если таблицы [jos_session] нет нигде, придется ее импортировать из дефолтной базы данных, дефолтного дистрибутива Joomla.
Важно! После операций по исправлению ошибок не забывайте чистить кеш сайта.
Ошибка таблица помечена как испорченная и должна быть восстановлена
Внешний вид ошибки
jtablesession::Store Failed DB function failed with error number XXXX Table '.\s_\jos_session' is marked as crashed and should be repaired SQL=INSERT INTO `jos_session` (`session_id`,`time`,`username`,`gid`,`guest`,`clie nt_id` ) VALUES ( 'c4kkidl1t855gihmkfliksdhd5','1218284376','','0',' 1','0' )
Анализ ошибки
Простой перевод сообщения об ошибке дает ответ на вопрос что произошло: is marked as crashed and should be repaired. Не много немало, таблица повреждена, ее нужно восстановить.
Исправление ошибки
Востанавливаем таблицу инструментом phpMyAdmin
- Войти в панель phpMyAdmin на сервере;
- Открыть базу данных сайта;
- Найти таблицу [_session] ;
- Выделить таблицу флажком и внизу в «С отмеченными: «выбрать «Восстановить таблицу».
Делаем SQL запрос на восстановление этой таблицы
REPAIR TABLE jos_session;
Не помогло, восстанавливаем базу данных полностью
Для этого нужно иметь SQL формат резервной копии базы данных (рабочую), импортированную ранее. Существующую базу данных удаляем и Импортируем резервную копию базы данных.
Нет резервной копии, создаем таблицу заново
Удалите таблицу [jos_session];
Создайте таблицу заново. Для создания таблицы [jos_session] заново, выполнити следующий SQL скрипт (скрипт проверен). На вкладке SQL запрос, сделайте следующий запрос:
CREATE TABLE `jos_session` ( `username` varchar(150) default '', `time` varchar(14) default '', `session_id` varchar(200) NOT NULL default '0', `guest` tinyint(4) default '1', `userid` int(11) default '0', `usertype` varchar(50) default '', `gid` tinyint(3) unsigned NOT NULL default '0', `client_id` tinyint(3) unsigned NOT NULL default '0', `data` longtext, PRIMARY KEY (`session_id`(64)), KEY `whosonline` (`guest`,`usertype`), KEY `userid` (`userid`), KEY `time` (`time`) ) TYPE=MyISAM CHARACTER SET `utf8`;
Важно! После операций по исправлению ошибок не забывайте чистить кеш сайта.
Что делать если ошибка после исправления возвращается назад
Если после исправления ошибки, через некоторое время ошибка появляется заново значит в системе установлено расширение, которое эту ошибку вызывает. Исправление: искать проблемное расширение методом исключения.
На этом про Ошибки в таблице сессий базы данных, jtablesession все.
Советы дня
- Пользуйтесь для исправления ошибок в БД инструментами phpMyAdmin, от простого к сложному.
- Периодически делайте резервную копию БД в формате SQL, используя Экспорт phpMyAdmin.
©Joomla-abc.ru
Другие ошибки Joomla
Похожие статьи
Fatal error: Call to a member funct...
После обновления Joomla 2.5.28 до версии Joomla 3.3.6 я получил ошибку Fata...
Критическая ошибка соединения с баз...
Критическая ошибка соединения с базой данных, DatabaseError.Невозможность с...
Превышен временной лимит выполнения...
Ошибка Fatal error: Maximum execution time of 30 seconds exceeded in... или...