11/12 2013
CMS Joomla - Ошибка базы данных MySQL #1064 - USING BTREE
#1064 - You have an error in your SQL syntax; check the manual that corresponds to yourИ сегодня я хотел бы рассказать, что делать с такой ошибкой.
MySQL server version for the right syntax to use near 'USING BTREE )
ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9' at line xx
Ошибка возникает при импорте таблицы _usergroups. Например:
CREATE TABLE IF NOT EXISTS `id0ap_usergroups` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key', `parent_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'Adjacency List Reference Id', `lft` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set lft.', `rgt` int(11) NOT NULL DEFAULT '0' COMMENT 'Nested set rgt.', `title` varchar(100) NOT NULL DEFAULT '', PRIMARY KEY (`id`), UNIQUE KEY `idx_usergroup_parent_title_lookup` (`parent_id`,`title`), KEY `idx_usergroup_title_lookup` (`title`), KEY `idx_usergroup_adjacency_lookup` (`parent_id`), KEY `idx_usergroup_nested_set_lookup` (`lft`,`rgt`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;Вместо ENGINE=MyISAM может быть ENGINE=InnoDB или иное значение, что не принципиально.
Проблема собственно в использовании в запросе структуры индекса данных BTREE (Б-дерево) - двоичное дерево памяти. Такая ситуация возникает вследствие того, что экспорт базы данных сделан на сервере MySQL, версия которого новее того сервера, на который дамп импортируется. А конкретно - версия сервера MySQL с которого был сделан дамп - 5.1.40, а версия сервера MySQL, на который импортируется дамп - 5.0.51 (версии могут незначительно отличаться).
Решение простое - удаляем из запроса USING BTREE и импортируем базу повторно.
Комментировать статью: