Как сделать имя таблицы 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]section.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> Table не существует. Но это может произойти (или должно произойти).

Комментарий к этому ответу помог мне в этом случае:

Я вернул значение, перезапустил базу данных, экспортировал таблицы, установил значение обратно в 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.