Как заставить регистрозависимые имена таблиц? - PullRequest
41 голосов
/ 06 июня 2011

Я работаю над базой данных MySQL в Windows.

Я должен переместить его в среду Linux.База данных MySQL содержит множество таблиц и хранимых процедур, которые являются CASE SENSITIVE.

Когда я делаю резервную копию своей базы данных, все имена таблиц принудительно вводятся в нижнем регистре, поэтому, когда я восстанавливаю ее в Linux, она жалуется, потому что вы не можете создать дублирующиеся таблицыи хранимые процедуры.

У меня нет доступа к конфигурации MySQL в среде linux, поэтому я не могу изменить настройки MySQL на режим без учета регистра.

Есть ли способ форсировать MySQL (v5.x) использовать регистрозависимые имена таблиц в windows?

Ответы [ 6 ]

47 голосов
/ 28 марта 2012

Прочитайте все это: http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html

Затем добавьте эту системную переменную в раздел сервера, [mysqld], my.ini и перезапустите mysql:

/my.ini: lower_case_table_names = 2

8 голосов
/ 06 июня 2011

Посмотрите на эту статью - http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html

Режим 2 позволяет хранить таблицы с указанным буквенным регистром, но в любом случае сравнение имен не будет чувствительным к регистру, и вы не сможете хранить table1 и Table1 одновременно.

4 голосов
/ 10 июня 2016

В Windows поместите lower_case_table_names = 2 в конец файла C: \ ProgramData \ MySQL \ MySQL Server 5.7 \ my.ini

4 голосов
/ 06 июня 2011

К сожалению, нет способа заставить MySQL на Windows вести себя на 100%, как в Linux.Что вы можете сделать, это запустить минимальную виртуальную машину на Виртуальный ящик или Плеер VMware с TurnKey - MySQL Appliance .

В моем личномПо опыту я нашел весьма полезным иметь ВМ с конфигурацией, аналогичной среде развертывания, для диагностики проблем.

1 голос
/ 21 июня 2015

я добавляю эту строку, и она решает другую проблему с регистром

lower_case_table_names = 1

в /etc/my.cnf

вы можете увидеть, как установить переменную mysql"lower_case_table_names" формируют эту страницу: https://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names

0 голосов
/ 07 декабря 2015

Добавьте это свойство в lower_case_table_names = 2 в my.ini

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...