У меня есть код php, где имена первых букв базы данных хранятся в заглавной букве каждый раз, но имена таблиц в базе данных имеют строчные буквы.
Какую глобальную настройку следует использовать, чтобы в каждом файле кода не было необходимости изменять имена таблиц в том же случае, что и в базе данных.
Метаданные MySQL чувствительны к регистру по умолчанию в Linux. То есть, если у вас есть таблица my_table, в нижнем регистре, тогда
select * from my_table
будет успешным
select * from MY_TABLE
не удастся с какой-то таблицей, не существует сообщения.
Если вы хотите, чтобы оба оператора были успешными, вам нужно поместить следующую строку lower_case_table_names = 1 в /etc/my.cnf или где бы вы не сохраняли свою конфигурацию MySQL. Не забудьте добавить системную переменную в раздел [mysqld] конфигурационного файла.
Вам нужно проверить идентификатор mysql:
lower_case_table_names
Вам нужно проверить файл my.ini
расположенный в вашем каталоге mysql
. Подробнее о исходных и целевых операционных системах:
http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
AS EXTRACTED FROM URL ABOVE:
Если вы используете MySQL только на одной платформе, вам обычно не нужно менять значение переменной lower_case_table_names из значения по умолчанию. Однако вы можете столкнуться с трудностями, если хотите перенести таблицы между платформами, которые отличаются чувствительностью к регистру файловой системы. Например, в Unix вы можете иметь две разные таблицы с именем my_table и MY_TABLE, но в Windows эти два имени считаются идентичными. Чтобы избежать проблем передачи данных, возникающих из буквенного обозначения имен базы данных или таблиц, у вас есть два варианта:
Use lower_case_table_names=1 on all systems. The main disadvantage with this is that when you use SHOW TABLES or SHOW DATABASES, you do
не видеть имена в их исходном буклете.
Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows. This preserves the lettercase of database and table names.
Недостатком этого является то, что вы должны убедиться, что ваши утверждения всегда ссылаются на ваши базы данных и имена таблиц с правильной буквой в Windows. Если вы передадите свои заявления в Unix, где регистр букв является значительным, они не работают, если регистр букв неверен.