Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment changer les noms de table MySQL sur le serveur Linux pour qu'ils soient insensibles à la casse ?

La sensibilité à la casse de MySQL est gérée par défaut par le système de fichiers, c'est pourquoi vous avez trouvé cette différence :

9.2.2. Sensibilité à la casse de l'identifiant

Dans MySQL, les bases de données correspondent aux répertoires du répertoire de données. Chaque table dans une base de données correspond à au moins un fichier dans le répertoire de la base de données (et éventuellement plus, selon le moteur de stockage). Par conséquent, la sensibilité à la casse du système d'exploitation sous-jacent joue un rôle dans la sensibilité à la casse des noms de base de données et de table. Cela signifie que les noms de bases de données et de tables ne sont pas sensibles à la casse dans Windows, et sensibles à la casse dans la plupart des variétés d'Unix. Une exception notable est Mac OS X, qui est basé sur Unix mais utilise un type de système de fichiers par défaut (HFS+) qui n'est pas sensible à la casse. Cependant, Mac OS X prend également en charge les volumes UFS, qui sont sensibles à la casse comme sur n'importe quel Unix. Voir Section 1.8.4, « Extensions MySQL au SQL standard ».

Heureusement, la phrase suivante pourrait vous aider :

Les lower_case_table_names La variable système affecte également la façon dont le serveur gère la sensibilité à la casse de l'identifiant, comme décrit plus loin dans cette section.

Les lower_case_table_names texte de présentation :

S'il est défini sur 0, les noms de table sont stockés comme spécifié et les comparaisons sont sensibles à la casse. S'il est défini sur 1, les noms de table sont stockés en minuscules sur le disque et les comparaisons ne sont pas sensibles à la casse. S'il est défini sur 2, les noms de table sont stockés tels quels mais comparés en minuscules. Cette option s'applique également aux noms de base de données et aux alias de table. Pour plus d'informations, reportez-vous à la Section 9.2.2, « Sensibilité à la casse des identifiants ».

Vous ne devez pas définir cette variable sur 0 si vous exécutez MySQL sur un système dont les noms de fichiers ne sont pas sensibles à la casse (comme Windows ou Mac OS X). Si vous définissez cette variable sur 0 sur un tel système et que vous accédez aux noms de table MyISAM en utilisant des casses différentes, une corruption d'index peut en résulter. Sous Windows, la valeur par défaut est 1. Sous Mac OS X, la valeur par défaut est 2.

Il semble donc que vous devriez définir lower_case_table_names à 1 dans le fichier de configuration MySQL.