Данная ошибка означает, что одна из таблиц базы данных повреждена. Имя поврежденной таблицы указывается в тексте ошибки. Например
DB function failed with error number 1016
Can't open file: 'jos_session.MYI'. (errno: 145) SQL=SELECT session_id FROM jos_session WHERE session_id=MD5('c82c53720d94a9ec7256143da29892b5')
SQL = SELECT session_id FROM jos_session WHERE session_id=MD5('c82c53720d94a9ec7256143da29
Как видно из текста ошибки, проблема в данном случае с таблицей jos_session. Что можно сделать для устранения подобной ошибки?
Для начала следует попробовать восстановить таблицу из phpMyAdmin или какого-либо другого менеджера MySQL. Для восстановления таблицы из phpMyAdmin необходимо выполнить следующие действия:
1. Авторизуемся в phpMyAdmin
2. Выбираем базу данных в которой содержится данная таблица
3. Отмечаем данную таблицу галочкой в списке
4. В выпадающем списке действий с отмеченными таблицами выбираем Repair (Починить таблицу)
Или же просто нажимаем SQL и вводим текст запроса:
REPAIR TABLE jos_session;
Если это не помогает, то можно попробовать восстановить эту таблицу из бекапа (если таковой имеется). Или обратиться к администратору сервера и попросить его помочь с восстановлением таблицы.
Кстати, если повреждается только таблица jos_session, то можно не тратить время, а просто удалить ее и пересоздать заново следующим SQL-запросом:
DROP TABLE `jos_session`;
CREATE TABLE `jos_session` (
`username` varchar(50) 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',
PRIMARY KEY (`session_id`),
KEY `whosonline` (`guest`,`usertype`)
) TYPE=MyISAM;