Здравствуйте дорогие друзья и любители Joomla. Сегодня хочу рассказать об ошибке базы данных при установке Joomla 3.0, которая не давала мне удачно ее установить. После первого вывода ошибки на завершающем этапе установки, я подумал, что скорее всего я некорректно разархивировал установочный пакет или архив оказался битым. Но когда данная ошибка выводилась постоянно, после нескольких проб, я понял что суть проблемы вовсе не в сборке.
И как оказалось, я был прав и не я один столкнулся с ошибкой базы банных в установке Joomla 3.0. И как всегда решение довольно простое, но до которого сам не догадаешься.
Ошибка при установке Joomla 3.0: При заполнении базы данных возникли ошибки
Вот эта та самая ошибка:
При заполнении базы данных возникли ошибки: SQL=INSERT INTO `#_usergroups` (`id`, `parent_id`, `lft`, `rgt`, `title`) VALUES (1, 0, 1, 18, 'Public'), (2, 1, 8, 15, 'Registered'), (3, 2, 9, 14, 'Author'), (4, 3, 10, 13, 'Editor'), (5, 4, 11, 12, 'Publisher'), (6, 1, 4, 7, 'Manager'), (7, 6, 5, 6, 'Administrator'), (8, 1, 16, 17, 'Super Users'), (9, 1, 2, 3, 'Guest')
Вместо # в синтаксисе `#_usergroups` у каждого будет свой префикс базы данных, а все остальное будет также.
Что нужно сделать?
Ищем файл installation\sql\mysql\joomla.sql, открываем его в текстовом редакторе (я пользуюсь Notepad ++) и ищем строки:
CREATE TABLE IF NOT EXISTS '#__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=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
А дальше перемещаем USING BTREE после PRIMARY KEY чтоб получилось PRIMARY KEY USING BTREE (‘id’), получится следующее:
CREATE TABLE IF NOT EXISTS '#__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 USING BTREE ('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') ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
Повторюсь для тех кому не понятно, что произошло. Я взял USING BTREE из 11 строчки кода выше, вырезал ее и вставил в 7 строчку кода выше после PRIMARY KEY.
После данных изменений, сохраняем изменения и заливаем файл joomla.sql обратно в installation\sql\mysql\
После таких не хитрых изменений, установка должна пройти удачно.
На этом краткое руководство по борьбе с ошибкой при установке нами любимой Joomla 3.0 завершено. Всем удачи, всем пока. Увидимся.
Joomla Блог Nauca – научись работать с Joomla