Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Ceci est une ancienne révision du document !


Bases SQL

Matériel

Logiciels

Tutoriels

Problèmes et solutions

Pour un index UNIQUE, la longueur maximum est de 191

Donc, mettez une longueur plus petite pour chaque clé pour ne pas dépasser la limite totale, avec la syntaxe suivante :

par exemple, si la clé ConfigValue est définie sur 255, n'utilisez dans l'index que ses 20 premiers caractères au lieu de 255

...
`ConfigValue` VARCHAR(255) ...,
...
UNIQUE KEY `key_ConfigValue` (`ConfigValue`(20),...),
...

Autre méthode

  1. Ouvrez un client MySQL (ou MariaDB) en ligne de commande. Entrez votre login et mot de passe
  2. Sélectionnez votre base de données et lance ces commandes :

    ...@...:~ $ use my_database_name;
    Database changed
    ...@...:~ $ set global innodb_large_prefix=on;
    Query OK, 0 rows affected (0.00 sec)
    ...@...:~ $ set global innodb_file_format=Barracuda;
    Query OK, 0 rows affected (0.02 sec)

  3. Accédez à votre base de données avec phpMyAdmin ou Adminer
    1. Sélectionnez la base de données
    2. Afficher la structure de la table
    3. Allez à l'onglet Opérations
    4. Changez ROW_FORMAT en DYNAMIC et enregistrez les modifications
    5. Aller à l'onglet structure de la table
    6. Cliquez sur le bouton Unique
    7. Terminé. Maintenant, il ne devrait y avoir aucune erreur.

Le problème de ce correctif est si vous exportez la base de données vers un autre serveur (par exemple de localhost vers un hôte réel) et que vous ne pouvez pas utiliser la ligne de commande MySQL sur ce serveur. Vous ne pouvez pas le faire fonctionner là-bas.

Voir aussi


Basé sur « Article » par Auteur.