Sont les noms de table dans MySQL sensible à la casse?
Sont les noms de table dans MySQL sensible à la casse?
Sur mon Windows dev machine le code que j'ai est en mesure d'interroger mes tables qui semblent être en minuscules. Lorsque je de le déployer sur le serveur de test dans notre centre de données de la table des noms semblent commencer avec une lettre majuscule.
Les serveurs que nous utilisons sont tous sur Ubuntu.
Vous devez vous connecter pour publier un commentaire.
En Général:
Base de données et les noms de table ne sont pas sensibles à la casse sous Windows, et sensibles à la casse dans la plupart des variétés de Unix.
On peut configurer la manière dont les tables les noms sont stockés sur le disque à l'aide de la variable système
lower_case_table_names
. (en mon.cnf configuration sous [mysqld])Lire l'article: 10.2.2 Identificateur De La Casse pour plus d'informations.
Base de données et les noms de table ne sont pas sensibles à la casse sous Windows, et sensibles à la casse dans la plupart des variétés de Unix ou Linux.
pour résoudre le problème de définir la lower_case_table_names à 1
cela permettra de faire toutes vos tables minuscules, peu importe comment vous les écrivez
Les noms de Table dans MySQL sont entrées de système de fichiers, de sorte qu'ils sont insensibles à la casse si le sous-jacent du système de fichiers est.
Il dépend
lower_case_table_names
variable système:Il y a trois valeurs possibles pour cela:
0
- lettercase spécifié dans leCREATE TABLE
ouCREATE DATABASE
déclaration. Comparaisons nom sont sensibles à la casse.1
- Noms de Table sont stockées en minuscules sur le disque et le nom des comparaisons ne sont pas sensibles à la casse.2
- lettercase spécifié dans leCREATE TABLE
ouCREATE DATABASE
déclaration, mais MySQL convertit en minuscules sur la recherche.Nom comparaisons ne sont pas sensibles à la casse.
La Documentation
Localisez le fichier à
/etc/mysql/my.cnf
Éditer le fichier en ajoutant les lignes suivantes:
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart
exécuter
mysqladmin -u root -p variables | grep table
pour vérifier quelower_case_table_names
est1
maintenantVous pourriez avoir besoin de re-créer ces tables pour le faire fonctionner