Ошибка phpmysql - # 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';
        }

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

Ответ 1

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

1) Перейдите на вкладку "Экспорт" для базы данных

2) Нажмите переключатель "Пользовательский"

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

4) Прокрутите страницу вниз и нажмите "GO".

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

Ответ 2

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

Удаление только файлов cookie:

  • удерживайте Ctrl + сдвиг + удаление
  • удалите все флажки, за исключением файлов cookie, конечно.
  • используйте раскрывающийся список сверху, чтобы выбрать "с начала времени
  • удалить данные просмотра.

Ответ 3

Есть два способа исправить это.

Сначала отредактируйте phpMyAdmin/libraries/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';
    }

To:

    //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)

Ответ 4

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

Ответ 5

Я вчера прочитал, что проблема была исправлена ​​для кого-то, когда этот человек очистил файлы cookie. Я пробовал это, но это не сработало для меня.

Проверка следующего раздела в 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, устранило проблему для меня.