Архив заметок

The used table type doesn't support FULLTEXT indexes.

Просмотров: 4666Комментарии: 0
FreeBSDMybboardMySQL
Обязательно сделайте резервную копию БД перед дальнейшими действиями. В частности это касается администраторов форума MyBB(MyBulletinBoard).

Случился неприятный затык. При конвертировании типа таблицы из MYISAM в INNODB, мускул стал ругаться. INNODB не поддерживает такую индексацию. Поэтому, чтобы все-таки конвертировать табличку в INNODB надо индексы эти удалить.

Изначально у меня на одном из форумов стоял fulltext поиск, изменив его на стандартный, я думал, что проблема уйдет сама собой. Ожидания мои не оправдались и решено было выпилить индексы вручную.

Делал я все действия в консоли, хотя тоже самое можно провернуть через phpmyadmin.

Итак, погнали:

$ mysql -u root -p
Enter password:

Я залез сразу под root'ом. В целях повышения безопасности, логинитесь на сервер mysql под хозяином конкретной БД.

Далее смотрим список бд. Я например, чтобы не ошибиться в выборе базы вывожу его.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ftp                |
| mail               |
| main               |
| mybb               |
| mysql              |
| performance_schema |
| pmadb              |
| webmail            |
+--------------------+
9 rows in set (0.01 sec)

Таблица mybb. Используем ее.

mysql> use mybb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

Теперь смотрим с какими параметрами была создана база, где используется fulltext:

mysql> show create table mybb_posts;
........................
| mybb_posts | CREATE TABLE `mybb_posts` (
........................
  PRIMARY KEY (`pid`),
  KEY `tid` (`tid`,`uid`),
  KEY `uid` (`uid`),
  KEY `visible` (`visible`),
  KEY `dateline` (`dateline`),
  KEY `longipaddress` (`longipaddress`),
  FULLTEXT KEY `message` (`message`)
) ENGINE=MyISAM AUTO_INCREMENT=5477 DEFAULT CHARSET=utf8 |
1 row in set (0.00 sec)

Мне нужен FULLTEXT KEY `message` (`message`). Избавимся от него.

mysql> alter table mybb_posts drop index message;
Query OK, 5427 rows affected (0.16 sec)
Records: 5427  Duplicates: 0  Warnings: 0

После чистки, табличка конвертировалась в INNODB без проблем.

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)