web-dev-qa-db-fra.com

php mysql error - # 1273 - # 1273 - Classement inconnu: 'utf8mb4_general_ci'

Je viens d'installer PhpMyAdmin v4.1.5 en anglais uniquement

Je l'ai configuré pour accéder à 2 serveurs - le serveur local sur mon PC et le serveur distant sur mon serveur.

Tout va bien pour mon PC local, mais je reçois le message lorsque je me connecte à mon serveur distant.

Erreur

MySQL a déclaré: 

# 1273 - Classement inconnu: 'utf8mb4_general_ci' 

La recherche du code PhpMyAdmin trouve une référence à cela dans 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';
        }

Aucune idée de quoi il s'agit mais il semble que le jeu de caractères et la collation par défaut soient mal définis

26
Trevor Wood

Cette solution a fonctionné pour moi

1) Cliquez sur l'onglet "Exporter" pour la base de données

2) Cliquez sur le bouton radio "Personnalisé".

3) Accédez à la section intitulée "Options de format spécifiques" et modifiez le menu déroulant "Système de base de données ou ancien serveur MySQL pour optimiser la compatibilité de sortie avec:" de NONE à MYSQL40.

4) Faites défiler vers le bas et cliquez sur "GO".

Si c'est lié à wordpress, plus d'infos sur pourquoi cela se produit.

64
shaunsantacruz

Vous pouvez résoudre ce problème en supprimant le cookie du navigateur dès le début. J'ai essayé cela et cela fonctionne bien pour moi.

Pour supprimer uniquement les cookies:

  1. maintenez la touche Ctrl + Maj + Suppr enfoncée
  2. supprimer toutes les cases à cocher sauf les cookies bien sûr
  3. utilisez le menu déroulant sur le dessus pour sélectionner "depuis le début des temps
  4. cliquez sur Effacer les données de navigation
27
Anurag Srivastava

Il y a deux étapes pour résoudre ce problème.

Commencez par éditer phpMyAdmin/libraries/DatabaseInterface.class.php

Changement:

    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';
    //}

Supprimez ensuite ce cookie de votre navigateur "pma_collation_connection".
Ou supprimez tous les cookies.

Puis redémarrez votre phpMyAdmin.

(Ce serait bien si phpMyAdmin vous permettait de définir le jeu de caractères et le classement par serveur dans le fichier config.inc.php)

10
GGedde

Lorsque vous exportez, vous utilisez le système de compatibilité défini sur MYSQL40. Travaillé pour moi.

4
Thomas Gudin

J'avais lu hier que le problème avait été résolu pour quelqu'un lorsque celui-ci supprimait les cookies. J'avais essayé ça mais ça ne marchait pas pour moi.

Vérification de la section suivante dans DatabaseInterface.class.php,

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

Je pensais que le cache était en quelque sorte le problème. Je me suis donc rappelé que je redémarrais le service au lieu de faire start et stop.

# restart the service
systemd restart php-fpm

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

Faire une stop suivie d'une start a résolu le problème pour moi.

3
dknight

Votre serveur MySQL est-il version 5.5.3 ou supérieure?

Les jeux de caractères utf8mb4, utf16 et utf32 ont été ajoutés à MySQL 5.5.3. 

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

0
Tan Hong Tat