Як зробити регістр імен таблиці MySQL нечутливим в Ubuntu?


44

Я використовую Ubuntu 13.10 та MySQL 5.6, і я знаю, що ім'я бази даних та ім’я таблиці залежать від регістру в Ubuntu (та деяких інших середовищах * nix) за замовчуванням.

Тепер я хочу змусити MySQL працювати як нечутливі до регістру в Ubuntu.

Це можливо? Якщо так, то як це зробити?

Відповіді:


51

Відкрийте термінал і відредагуйте /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf

Під [mysqld]секцією.add:

lower_case_table_names = 1

Перезапустіть mysql

sudo /etc/init.d/mysql restart

Потім перевірте це тут:

mysqladmin -u root -p variables

2
Ви повинні додати цей розділ, якщо він недоступний. Інакше перезапуск не вдасться.
Олександр

10

Якщо ви змінюєте lower_case_table_namesБД з існуючими таблицями MySQL> Таблиця не існує. Але це може (або повинно) трапитися.

Коментар до цієї відповіді мені допоміг у цій справі:

Я повернув значення, перезапустив базу даних, експортував таблиці, повернув значення до 1, перезапустив базу даних, повторно імпортував таблиці і все працював заново.


5

Ця проблема заподіювала мені біль, де Doctrine генерував капітал / назви таблиць CamelCase та MySQL зберігав їх як малі регістри!

Це було вирішено шляхом зміни my.cnfта додавання

lower_case_table_names = 1

під розділом [mysqld]

my.cnf можна знайти:

  • під LAMPP / XAMPP ...:

    /opt/lampp/etc/my.cnf

  • окремий сервер mysql:

    /etc/mysql/my.cnf

Після цього перезавантажте MySQL-сервер, і все буде добре.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.