首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在lower_case_table_names中更改MariaDB变量

在lower_case_table_names中更改MariaDB变量
EN

Stack Overflow用户
提问于 2018-02-09 10:52:08
回答 2查看 8.4K关注 0票数 2

我有一个测试Linux服务器运行数据库进行测试,但在本地,我正在运行一个窗口。这意味着我的lower_case_table_names变量被设置为1,所以基本上我的表名是区分大小写的,而在Linux上它被默认设置为0

我尝试更改安装目录( my.ini )中的变量(C:\Program Files\MariaDB 10.0\data\my.ini)。在应用这些更改之前,我确实需要重新启动服务。

我进入我的服务并停止了MySql服务。然而,试图再次启动它时,我会出错:

1067:进程意外终止

因此,我认为MariaDB无法理解my.ini配置。

正如我通过阅读文档所理解的,这是真正做到这一点的方法之一。从lower_case_table_names文件中删除my.ini变量,服务可以重新启动。

如何设置变量,使表名区分大小写?

编辑

将该变量设置为12,服务可以再次正常启动。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-09 15:34:40

来自手册

从MySQL 5.5.46开始,如果您试图在一个不区分大小写的文件系统上使用--lower_case_table_names=0启动服务器,则会打印一条错误消息,然后服务器退出。

MariaDB也是如此。

票数 4
EN

Stack Overflow用户

发布于 2020-04-29 16:08:09

正如elenst所述,如果将lower_case_table_names设置为OFF或将lower_case_file_system设置为0,则可能会出现错误消息。该请求程序在lower_case_file_system系统上进行开发,但与许多系统一样,它部署在具有大小写敏感性的linux系统上,并且可能会出现兼容性问题,在开发过程中某些内容可能会正常工作,而在部署过程中则不会。

与流行的观念相反,Windows (> NT)允许区分大小写的文件系统,NTFS从一开始就支持区分大小写的文件,甚至可以(必须)在每个文件夹的基础上设置区分大小写的文件。干净利落。如果将mariadb上的数据文件(例如,mariadb\ data )的位置和内容设置为区分大小写的行为,则在mysqld下,lower_case_table_name值在my.ini中可以设置为0。

代码语言:javascript
运行
复制
lower_case_table_names = 0

这是我的结果

代码语言:javascript
运行
复制
select @@lower_case_file_system, @@lower_case_table_names;

在Windows 10系统上(运行wampserver,使用mariadb 10.4.10):

代码语言:javascript
运行
复制
+--------------------------+--------------------------+
| @@lower_case_file_system | @@lower_case_table_names |
+--------------------------+--------------------------+
|                        0 |                        0 |
+--------------------------+--------------------------+
1 row in set (0.000 sec)

太完美了。

那么如何将数据文件夹设置为区分大小写呢?fsutil可以在创建文件后设置大小写感知标志。该命令如下:

代码语言:javascript
运行
复制
fsutil file setcasesensitiveinfo *data* enable

数据取文件夹名的地方。有一个罪魁祸首,该命令不支持递归地设置所有子文件夹。一个简单的PS脚本会有这样的疑问:

代码语言:javascript
运行
复制
Get-ChildItem -Path C:\wamp64\bin\mariadb\mariadb10.4.10\data -Directory -Recurse | foreach {fsutil file SetCaseSensitiveInfo $_.Fullname}

显然,您必须更改数据文件夹的路径,而不是我的路径。

备注: MySQL工作台中的许多错误之一是,它不完全理解这一点,错误地假设lower_case_file_system=1在Workbench上运行时会抱怨服务器配置问题。

还有一句警告。虽然操作系统和FS支持的情况下,感觉到辉煌,许多应用程序不理解。但首先,您不应该将MySQL或MariaDB数据文件夹与其他应用程序混为一谈。

如果你遇到问题请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48704227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档