MySQL и MariaDB учитывают регистр имен таблиц в зависимости от базовой файловой системы. В системах с чувствительным регистром, таких как Linux и Unix, имена таблиц чувствительны к регистру, а в системах с нечувствительным регистром, таких как Windows, имена таблиц не чувствительны.
Это означает, что в системе, не чувствительной к регистру, таблица с именем tablename будет восприниматься так же, как TABLENAME или TableName. Причина такого поведения заключается в том, что MySQL и MariaDB хранят и запрашивают таблицы баз данных в соответствии с чувствительностью файловой системы к регистру имен файлов и папок.
Вы можете настроить MySQL и MariaDB на использование имен таблиц без учета регистра в Linux и других Unix-системах, или включить имена таблиц с учетом регистра в Windows. Это делается путем изменения опции lower_case_table_names в конфигурационном файле.
Шаги по установке чувствительности к регистру для имен таблиц MySQL и MariaDB
Откройте файл конфигурации MySQL или MariaDB с помощью предпочтительного тестового редактора.
1 | sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf |
Найдите и установите значение lower_case_table_names в разделе [mysqld].
1 | lower_case_table_names=1 |
Добавьте строку, если она еще не существует. Установите значение в соответствии с вашими потребностями.
Значение | Описание |
0 | Хранится на основе оператора CREATE и чувствителен к регистру символов |
1 | Хранятся в нижнем регистре и не чувствительны к регистру |
2 | Хранится на основе оператора CREATE и не чувствителен к регистру. |
Сохраните файл конфигурации и выйдите из текстового редактора.
Перезапустите службу MySQL или MariaDB, чтобы применить изменения.
Проверьте, были ли изменения успешными.
1 | sudo mysqladmin -u root -p variables | grep lower_case_table_names |