在Windows10上运行的MySQL8.0.12中,似乎无法设置 lower_case_table_names
为2,从而在workbench中实现混合大小写db和表名的出现。我意识到在引擎盖下这些物体可以保持小写,这很好。但我希望它在workbench中看起来是正确的,而且我可以在mysql的早期版本中实现这一点。当我尝试这样做并重新启动服务使其生效时,服务崩溃并停止。在mysql日志中我看到:
服务器('2')和数据字典('1')的不同小写\u表\u名称设置。
数据字典初始化失败。
这似乎是很多人的通病。
我在这里读到解决办法是:
所以呢 lower_case_table_names
需要与--initialize一起设置。
但我不知道这意味着什么,也不知道如何在启动时设置它。我已经搜索了所有的论坛文章,并阅读了几篇,但我找不到关于如何解决这个问题的明确指示。
2条答案
按热度按时间m1m5dgzv1#
我想出来了。在安装mysql server 8.0.x时,您必须选择高级选项才能进入此屏幕:
然后选择preserve given case,这不是默认值。很可笑的是,mysql隐藏并隐藏了这个设置,然后在安装后提供了不可能的方法来更改它。他们需要解决这个问题!!
请注意,您可能需要添加
lower_case_table_names=2
以防mysql删除它。你可能会得到一个无意义的警告。我真希望mysql能够修复所有人都会遇到的明显的大bug。zzzyeukh2#
8.0.11变更日志:
现在禁止使用与服务器初始化时使用的设置不同的小写\u table \u names设置启动服务器。此限制是必要的,因为数据字典表字段使用的排序规则基于服务器初始化时定义的设置,并且使用不同的设置重新启动服务器会导致标识符排序和比较方式不一致(臭虫27309094,臭虫89035)
另请参见:https://bugs.mysql.com/bug.php?id=89035
通过初始化,它指的是8.0的初始安装。怎么做到的?