• При нажатии установить пишет «установлено», но сверху выскакивает следующее:
    WordPress database error: [Specified key was too long; max key length is 767 bytes]
    CREATE TABLE wp_terms ( term_id bigint(20) NOT NULL auto_increment, name varchar(200) NOT NULL default », slug varchar(200) NOT NULL default », term_group bigint(10) NOT NULL default 0, PRIMARY KEY (term_id), UNIQUE KEY slug (slug), KEY name (name) ) DEFAULT CHARACTER SET utf8

    WordPress database error: [Table ‘word.wp_terms’ doesn’t exist]
    INSERT INTO wp_terms (name, slug, term_group) VALUES (‘Некатегоризовано’, ‘%d0%bd%d0%b5%d0%ba%d0%b0%d1%82%d0%b5%d0%b3%d0%be%d1%80%d0%b8%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%be’, ‘0’)

    WordPress database error: [Table ‘word.wp_terms’ doesn’t exist]
    INSERT INTO wp_terms (name, slug, term_group) VALUES (‘Блоґрол’, ‘%d1%81%d1%83%d0%b2%d1%96%d0%b9-%d0%b1%d0%bb%d0%be%d2%91%d1%96%d0%b2’, ‘0’)

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Модератор Юрій

    (@yube)

    Кажется, это ограничение InnoDB. Переведите базу на MyISAM.

    При установке WordPress он сам создаёт таблицы в базе. Как сделать чтобы он создавал таблицы типа MyISAM, а не InnoDB?

    Atrax

    (@atrax)

    Ethical engineer

    База данных в любом случае создается ДО установки. Создайте ее правильно, если не можете сами — попросите хостера.

    Модератор Юрій

    (@yube)

    Таблицы создаются в соответствии с настройками MySQL. Скорее всего, у Вашего в my.ini написано
    default-storage-engine=INNODB
    Если сервер свой, то поменяете без труда на
    default-storage-engine=MYISAM
    Главное — не забыть перезапустить mysqld.

    Если сервер чужой, то можно в /wp-admin/includes/schema.php попробовать переопределить переменную типа таблиц перед всеми запросами:

    $wp_queries="SET table_type='MyISAM';
    CREATE TABLE $wpdb->terms (
     term_id bigint(20) NOT NULL auto_increment,
     name varchar(55) NOT NULL default '',
    ...

    Или дописать к запросам на создание страниц прямое указание Storage Engine (не знаю как это будет по-русски). Получится типа так:

    $wp_queries="CREATE TABLE $wpdb->terms (
     term_id bigint(20) NOT NULL auto_increment,
     name varchar(55) NOT NULL default '',
     slug varchar(200) NOT NULL default '',
     term_group bigint(10) NOT NULL default 0,
     PRIMARY KEY  (term_id),
     UNIQUE KEY slug (slug)
    ) ENGINE=MyISAM  $charset_collate;

    и так далее со всеми CREATE TABLE.

    Может еще еще какое-то решение.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Можно изменить тип созданных таблиц:
    ALTER TABLE название_таблицы ENGINE = MYISAM

    Модератор Юрій

    (@yube)

    Можно, Сергей. И через phpmyadmin можно в два клика. Но только если установка прошла без ошибок. Я так делал для плагина related posts. Но если установка не проходит, то что меняй, что не меняй — толку мало. Особенно, если таблицы не создались 🙂

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Точно 🙂 Тогда можно создать файл wp-content/db.php:

    <?php
    require_once(ABSPATH . WPINC . '/wp-db.php');
    $wpdb->query("SET table_type='MyISAM'");
    ?>

    Этот запрос будет выполняться в первую очередь.

    Модератор Юрій

    (@yube)

    Интересный маневр. Заценил. Респект.

Просмотр 8 ответов — с 1 по 8 (всего 8)

Тема «Ошибка при установке» закрыта для новых ответов.