it-swarm.com.ru

php mysql error - # 1273 - # 1273 - Неизвестное сопоставление: 'utf8mb4_general_ci'

Я только что установил PhpMyAdmin v4.1.5 только на английском языке

Я настроил его для доступа к 2 серверам - локальному на моем ПК и удаленному на моем сервере

Все нормально для моего локального ПК, но когда я захожу на удаленный сервер, я получаю сообщение

Ошибка

MySQL сказал: 

# 1273 - Неизвестное сопоставление: 'utf8mb4_general_ci' 

Поиск кода PhpMyAdmin находит одну ссылку на это в DatabaseInterface.class.php

        if (PMA_MYSQL_INT_VERSION >  50503) {
            $default_charset = 'utf8mb4';
            $default_collation = 'utf8mb4_general_ci';
        } else {
            $default_charset = 'utf8';
            $default_collation = 'utf8_general_ci';
        }

Понятия не имею, что это такое, но, похоже, неправильно устанавливаются кодировка и сопоставление по умолчанию

26
Trevor Wood

Это решение сработало для меня

1) Нажмите на вкладку «Экспорт» для базы данных

2) Нажмите кнопку «Пользовательский»

3) Перейдите в раздел «Опции, зависящие от формата» и измените раскрывающийся список «Система базы данных или более старый сервер MySQL, чтобы максимизировать совместимость вывода с:» с NONE на MYSQL40.

4) Прокрутите вниз и нажмите «GO».

Если это связано с WordPress, больше информации о том, почему это происходит.

64
shaunsantacruz

Вы можете решить эту проблему, удалив cookie-файл браузера с самого начала. Я попробовал это, и это работает нормально для меня.

Чтобы удалить только куки:

  1. удерживая Ctrl + Shift + Delete
  2. снять все флажки, кроме файлов cookie, конечно
  3. используйте выпадающий сверху, чтобы выбрать "с начала времени
  4. нажмите очистить данные просмотра
27
Anurag Srivastava

Есть два шага, чтобы это исправить.

Сначала отредактируйте phpMyAdmin/library/DatabaseInterface.class.php

Правка:

    if (PMA_MYSQL_INT_VERSION >  50503) {
        $default_charset = 'utf8mb4';
        $default_collation = 'utf8mb4_general_ci';
    } else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    }

Для того, чтобы:

    //if (PMA_MYSQL_INT_VERSION >  50503) {
    //    $default_charset = 'utf8mb4';
    //    $default_collation = 'utf8mb4_general_ci';
    //} else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    //}

Затем удалите этот файл cookie из вашего браузера "pma_collation_connection".
Или удалите все файлы cookie.

Затем перезапустите свой phpMyAdmin.

(Было бы хорошо, если бы phpMyAdmin позволял вам устанавливать набор символов и параметры сортировки для каждого сервера в config.inc.php)

10
GGedde

При экспорте вы используете систему совместимости, установленную на MYSQL40. Работал на меня.

4
Thomas Gudin

Вчера я читал, что проблема была решена для кого-то, когда этот человек очистил куки. Я попробовал это, но у меня это не сработало.

Проверка следующего раздела в DatabaseInterface.class.php,

        define(
            'PMA_MYSQL_INT_VERSION',
            PMA_Util::cacheGet('PMA_MYSQL_INT_VERSION', true)
        );

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

# restart the service
systemd restart php-fpm

# start and stop the service
systemd stop php-fpm
systemd start php-fpm

Выполнение stop и start устранило проблему для меня.

3
dknight

Ваш сервер MySQL версии 5.5.3 или выше?

Наборы символов utf8mb4, utf16 и utf32 были добавлены в MySQL 5.5.3. 

http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html

0
Tan Hong Tat