• Решено kanarium

    (@kanarium)


    Здравствуйте!

    При установке плагина на Wordpess 5.4 выдаётся следующая ошибка:

    Ошибка базы данных WordPress: [Conflicting declarations: ‘CHARACTER SET DEFAULT’ and ‘CHARACTER SET utf8mb4’]
    CREATE TABLE IF NOT EXISTS countries ( id int(10) unsigned NOT NULL auto_increment, iso2 char(2) NOT NULL, name varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE iso2 (iso2), INDEX country_iso2 (iso2) ) ENGINE = InnoDB, CHARACTER SET = utf8, COLLATE = DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Плагин написан на заказ, для более ранней версии WordPress, с текущей версией не тестировался.

    Подскажите, пожалуйста, в чём может быть проблема?

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

    (@yube)

    Проблема вот тут:
    CHARACTER SET = utf8, COLLATE = DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    Покажите, что в том месте плагина, где создается таблица (запрос CREATE TABLE). Возможно, подскажут, что и как подправить, чтобы не было конфликта.

    Автор kanarium

    (@kanarium)

    Спасибо, Юрий.

    CREATE TABLE IF NOT EXISTS $tbl_countries (
    id int(10) unsigned NOT NULL auto_increment,
    iso2 char(2) NOT NULL,
    name varchar(255) NOT NULL,
    PRIMARY KEY (id),
    UNIQUE iso2 (iso2),
    INDEX country_iso2 (iso2)
    ) ENGINE = InnoDB, CHARACTER SET = utf8, COLLATE = $charset_collate;
    E;

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

    (@yube)

    Попробуйте строку

    ) ENGINE = InnoDB, CHARACTER SET = utf8, COLLATE = $charset_collate;
    

    заменить на

    ) $charset_collate;
    

    или

    ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    

    или

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    

    если InnoDB принципиально и отличается от умолчания. Что вряд ли.

    Автор kanarium

    (@kanarium)

    Спасибо большое, Юрий!

    Я попробовал и плагин активировался.

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

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