web-dev-qa-db-fra.com

Comment rendre le nom de table MySQL insensible à la casse dans Ubuntu?

J'utilise Ubuntu 13.10 et MySQL 5.6 et je sais que le nom de la base de données et le nom de la table sont sensibles à la casse dans Ubuntu (et certains autres environnements * nix) par défaut.

Maintenant, je veux faire fonctionner MySQL comme insensible à la casse dans Ubuntu.

C'est possible? Si oui, comment faire?

46
java baba

Ouvrez le terminal et modifiez /etc/mysql/my.cnf

Sudo nano /etc/mysql/my.cnf

Sous le [mysqld] section.add:

lower_case_table_names = 1

Redémarrez mysql

Sudo /etc/init.d/mysql restart

Vérifiez ensuite ici:

mysqladmin -u root -p variables
54
Rajneesh Sharma

Si vous changez lower_case_table_names dans une base de données avec des tables existantes MySQL> La table n'existe pas. Mais elle existe (ou elle devrait) peut se produire.

Le commentaire de cette réponse m'a aidé dans ce cas:

J'ai rétabli la valeur, redémarré la base de données, exporté les tables, remis la valeur à 1, redémarré la base de données, réimporté les tables et tout a fonctionné à nouveau.

Ce problème me faisait mal, où Doctrine a généré les noms des tables majuscules/CamelCase et MySQL les a stockés en minuscules!

Il a été résolu en modifiant my.cnf et en ajoutant

lower_case_table_names = 1

sous la section [mysqld]

my.cnf peut être trouvé:

  • sous LAMPP/XAMPP ...:

    /opt/lampp/etc/my.cnf

  • serveur mysql autonome:

    /etc/mysql/my.cnf

Redémarrez ensuite le serveur MySQL et tout ira bien.

5
Doried Abd-Allah