lower_case_table_names à 2, Workbench ne permet pas encore en minuscules nom de base de données
J'ai installé MySql Workbench 6.2
avec MySql version 5.6
sur mon Windows 7 64 bits.
Je voudrais utiliser de majuscules dans mon nom de base de données et les noms de table. J'ai donc besoin de définir la variable lower_case_table_names
à 2. Quand je regarde mon fichier d'Options de l'onglet Général, il se présente comme suit:
En cliquant sur Appliquer ouvre une boîte de dialogue qui dit "Il n'y a Pas de Changements".
Quand même, quand j'essaie de créer une base de données avec une lettre Capitale, je reçois l'avertissement:
Le serveur est configuré avec lower_case_table_names=1 qui seulement
permet de caractères minuscules dans le schéma et les noms de table.
J'ai l'impression que l' my.ini
fichier sur le serveur diffère de celui indiqué dans le Fichier d'Options de configuration. Lorsque j'essaie d'ajouter cette variable manuellement
à l'intérieur de mon my.ini
fichier, je vois le texte ci-dessous:
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
C'est la façon dont j'ai été coincé dans la création de mon schéma pour quelques jours maintenant.
- Avez-vous essayé de redémarrer le service mysql?
- si mon redémarrage de vous dire d'aller
Instance
section de la barre d'outils du Navigateur et de l'arrêter via le menu "Démarrage / Shutdow" option. Je l'ai fait. J'ai aussi essayé d'arrêter et de redémarrer le service MySql.
Vous devez vous connecter pour publier un commentaire.
Dans Windows, table de nommage est pas sensible à la casse. Voilà, votre
Customer
table et votrecustomer
table sera toujours le même sur Windows. C'est une limitation du Système de Fichiers NT. Cela s'applique lorsque votre MySQL serveur est en cours d'exécution sur une plate-forme Windows. Il n'a pas d'importance où votre workbench client est en cours d'exécution.(Vous pouvez utiliser des majuscules les noms de table pour les tables différentes sur Linux, BSD, etc, mais il est considéré comme très mauvaise pratique: seulement le faire si vous voulez conduire vos collègues fou. Donc, soyez prudent.)
Si vous laissez ce
lower_case_table_names
paramètre, vous pouvez utiliser des majuscules et des minuscules dans vos noms de table sans problèmes.La
my.ini
fichier que le serveur utilise en fait quand il commence à se trouvent généralement dans lesdata
répertoire. La procédure d'installation peut copier un préchargé version de ce fichier, commemy_large.ini
sur le dessus demy.ini
en fonction de ce que vous essayez de faire.Campaign
. Il sera changé àcampaign
. Mais je peux utiliser un mélange des deux dans mes noms de colonne.Si vos fichiers de données sur un disque différent du disque C:, vous pouvez réellement avoir 2 "mon.ini" les fichiers, on va être sur le lecteur C: et lorsque vous modifiez les Options dans Workbench, qui est le fichier qui est modifié, si les "Mon.ini" votre système est en fait de travail est laissé seul.
Vérifier C:\Program Data\MySQL\MySQL(version serveur), pour voir si il y a un .ini fichier. Si oui, vous trouverez probablement qu'il a les modifications au bas de la fiche et qui doivent être écrites sur le travail réel .ini sur le lecteur de votre données ne sont stockées sur.
Vous ne pouvez même pas démarrer mysqld après la modification de la
lower_case_table_names
réglage autre pour autre chose que1
, qui est la valeur par défaut.0
=> Vous ne devez pas définirlower_case_table_names
à0
si vous utilisez MySQL sur un système où le répertoire de données réside sur la casse du système de fichiers (comme sur Windows ou macOS). C'est une combinaison non pris en charge qui pourrait entraîner une condition de blocage.Mais nous allons essayer de la modifier à 2:
Après l'initialisation, il n'est pas autorisé à modifier ce paramètre.
Donc
lower_case_table_names
doit être défini en collaboration avec--initialize
.Il est interdit de démarrer le serveur avec un
lower_case_table_names
paramètre qui est différent du paramètre utilisé lorsque le serveur a été initialisé. La restriction est nécessaire, car les classements utilisés par les différents dictionnaire de données les champs de la table sont en fonction du paramètre défini lorsque le serveur est initialisé, et de redémarrer le serveur avec un réglage différent permettrait d'introduire des incohérences dans la façon dont les identifiants sont classés et comparés.Alors vous obtiendrez d'erreur suivant dans le workbench d'après initilizing le serveur à nouveau avec
lower_case_table_names=2
:show variables like
lower_case_table_names
;Donc, conclusion: sur Windows laisser ce paramètre à 1 car 0 ou 2 ne fonctionne pas ou qu'ils ont mis ça: certains problèmes peuvent survenir.
Toutefois, j'ai maintenant ma base de données de noms de table et de montrer avec des lettres majuscules.
Qui ne marche pas vraiment faire beaucoup parce que la comparaison sera toujours :
Nicolas
Dans le workbench d'aller sur : panneau d'administration > le Fichier d'Options > Général > Système >
Cocher la case "lower_case_table_names", mettre la valeur 2.
Près De L'Établi.
Redémarrer le Service MYSQL56
Voir img ici Comment faire pour activer la
/etc/mysql/my.cnf
[mysqld]
lower_case_table_names=1
sudo /etc/init.d/mysql restart