【问题标题】:Does MariaDB support lower_case_table_names=0 in windows?MariaDB 在 Windows 中是否支持 lower_case_table_names=0?
【发布时间】:2016-06-09 19:10:15
【问题描述】:

我最近将 mysql5.6x 升级到 mariaDB v10,两者都包含在 XAMPP 中。但是,lower_case_table_names = 0 在 windows 的 mariaDB 中不起作用。 Lower_case_table_names = 1 和 2 工作正常但不是 0。以前它在 mysql 中工作正常。有什么想法吗?

【问题讨论】:

    标签: mysql mariadb


    【解决方案1】:

    identifier case sensitivity 上的 MariaDB 文档说:

    lower_case_table_names 服务器系统变量起着关键作用。它 确定表名、别名和数据库名是否 以区分大小写的方式进行比较。如果设置为 0(默认开启 基于 Unix 的系统),表名和别名以及数据库名是 以区分大小写的方式进行比较。如果设置为 1(默认开启 Windows),名称以小写形式存储,不比较 区分大小写的方式。如果设置为 2(Mac OS X 上的默认值),名称 以声明的形式存储,但以小写形式进行比较。

    因此可以使基于 Unix 的系统表现得像 Windows 和 忽略大小写敏感,但反过来不正确,因为 底层 Windows 文件系统无法支持。

    (突出显示是我的)

    突出显示的句子表示您不能在 Windows 中将 lower_case_table_names 设置为 0。

    【讨论】:

    • 我也看过那篇文章,但它是一个保险杠。 lower_case_table_names=0 在 mysql5.6x 中很棒,他们说 windows 文件系统不能支持这个是没有意义的。然后回到mysql。
    • 其实他们这么说是对的。在 windows 中,文件路径不区分大小写,如果在 windows 上使用区分大小写的标识符设置,您可能会遇到麻烦。
    • 由于 MySQL 和 MariaDB 都依赖于文件名,因此它们受操作系统限制。 @vincenttan -- 是什么让您认为 MySQL 会采取不同的方式?
    • 我不知道。事实是我能够在早期版本的 mysql 的 windows 中使用 lower_case_table = 0。现在看来该功能已消失或已修复(我猜应该是这样)。我需要它来制作混凝土 5。 legacy-documentation.concrete5.org/tutorials/… 无论如何,我现在已经切换到 linux mint。一切都很好。谢谢
    • 突出显示的陈述不准确。 NTFS 可以具有 posix 语义 w.r.t 区分大小写(即将文件“a”和“A”存储在同一目录中),但这可能会破坏通常假定不区分大小写的应用程序。 NTFS 也是大小写保留,所以小写名称的原因完全超出了我的理解。然而实际上,在 SQL 标识符中是不区分大小写的,它是当前默认的 Unix 行为,严格来说,是一个错误(或一个不太可能修复的特性)
    猜你喜欢
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2021-07-14
    • 2017-08-01
    • 2023-03-21
    相关资源
    最近更新 更多