gpt4 book ai didi

mysql - 在 RHEL 上安装的 mysql 中设置 lower_case_table_names=1 ,无需重新安装

转载 作者:行者123 更新时间:2023-11-29 15:30:37 24 4
gpt4 key购买 nike

我可以在 MySql 上声明 lower_case_table_names=1 而无需重新安装吗?

我有一个 Web 应用程序,想要部署在基于 RHEL 的服务器上,并安装了 MySQL(8.0.18)。问题是我已经在安装了 MySQL 的 Windows 操作系统上测试了我的网络应用程序的健全性,并且没有遇到任何问题。但是,当我在 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 并设置该变量,并避免遍历我的代码并将表名替换为小写字母。

谢谢。

最佳答案

不,不重新安装就不可能在 mysql v8.0 上更改此设置。 Mysql manual对此非常明确:

It is prohibited to start the server with a lower_case_table_names setting that is different from the setting used when the server was initialized. The restriction is necessary because collations used by various data dictionary table fields are determined by the setting defined when the server is initialized, and restarting the server with a different setting would introduce inconsistencies with respect to how identifiers are ordered and compared.

这也是您链接的错误报告的答案,因此我不完全确定您期望在这里得到什么答案。

关于mysql - 在 RHEL 上安装的 mysql 中设置 lower_case_table_names=1 ,无需重新安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58761482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com