我可以在MySql上声明 lower_case_table_names = 1 而不重新安装它吗?
我有一个Web应用程序,要部署在安装了 MySQL(8.0.18)的基于 RHEL 的服务器上。问题是我已经在装有MySQL的Windows操作系统上测试了我的Web应用程序的运行状况,并且没有遇到任何问题。但是,当我在RHEL上运行相同代码时,MySQL在执行'表USER_MASTER不存在'之类的查询时给了我一个错误,虽然它在我的数据库中,但是带有小写的情况,例如' user_master'。
我进行了一些搜索,发现在UNIX中,区分大小写很重要,而在Windows中则无关紧要。因此,我在 my.cnf 中使用设置lower_case_table_names = 1,并认为这可以解决问题,但是很快我发现必须在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和设置该变量,并避免遍历我的代码并将表名替换为小写字母。
谢谢。