установка lower_case_table_names = 1 в mysql, установленном на RHEL, без переустановки - PullRequest
0 голосов
/ 08 ноября 2019

Могу ли я объявить lower_case_table_names = 1 на моем MySql без переустановки?

У меня есть веб-приложение, которое я хочу развернуть на RHEL сервере с MySQL (8.0.18) установлен на нем. Проблема в том, что я проверил работоспособность моих веб-приложений на ОС Windows с установленным MySQL и не столкнулся с какой-либо проблемой. Но когда я выполняю то же самое на RHEL, MySQL выдает мне ошибку при выполнении запросов, таких как ' таблица USER_MASTER не существует ', пока она находится в моей базе данных, но с небольшими случаями, такими как 'user_master'.

Я провел поиск и обнаружил, что в UNIX чувствительность к регистру имеет значение, а в Windows - нет. Поэтому я использую параметр lower_case_table_names = 1 в my.cnf и подумал, что это поможет, но вскоре я обнаружил, что эта переменная должна быть объявлена ​​во время инициализации сервера MySql.

Я прошел через следующее:

https://mysql.wisborg.dk/2019/04/14/install-mysql-8-on-linux-with-lower_case_table_names-1/

и

https://bugs.mysql.com/bug.php?id=90695

, и все они говорят, что я должен переустановитьMySql, чтобы сделать lower_case_table_names работает.

Ниже приведена ошибка, которую я получаю, если использую напрямую lower_case_table_names = 1.

2019-11-08T05:30:17.331505Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').

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

Спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Нет, невозможно изменить этот параметр в mysql v8.0 без переустановки. Mysql manual очень ясно говорит об этом:

Запрещается запускать сервер с параметром lower_case_table_names, который отличается от параметра, используемого при инициализации сервера. Ограничение необходимо, потому что параметры сортировки, используемые различными полями таблицы словаря данных, определяются настройкой, определенной при инициализации сервера, а перезапуск сервера с другой настройкой может привести к несоответствиям в отношении порядка и сравнения идентификаторов.

Это был ответ на сообщение об ошибке, на которое вы также ссылались, поэтому я не совсем уверен, какой ответ вы ожидаете получить здесь.

...