mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感_第1张图片

mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感?

MySQL 8.0 对于表名的大小写敏感性的默认设置并没有变更。在 UNIX-like 系统中,表名是大小写敏感的,而在 Windows 中,它们是大小写不敏感的。这与文件系统的行为有关。因为在 UNIX-like 系统中,InnoDB 表是由文件表示的,文件名的大小写敏感性与文件系统的大小写敏感性一致。

如果你遇到了 MySQL 8.0 在这方面的行为变化,可能是因为以下几个原因:

  1. 配置改变: lower_case_table_names 系统变量用于控制数据库对象名称的大小写敏感性。这个变量的默认值可能会根据操作系统和文件系统的不同而不同。如果这个值被修改,那么大小写敏感性的行为也会改变。

  2. 移植问题: 如果你从一个系统迁移到了另一个系统(例如从 Windows 迁移到 Linux),那么大小写敏感性的行为可能会变化。

  3. 推荐的做法: 虽然可以通过配置改变大小写敏感性的行为,但为了避免跨平台移植时的问题,推荐的做法是始终以一种大小写风格创建和访问表,不论在什么平台上。

总的来说,MySQL 8.0 本身并没有改变关于表名大小写敏感性的默认行为。如果你在实践中发现了不同的行为,可能是因为上述原因或其他配置问题。

MySQL8中表名称的大小写是不敏感的吗?

在 MySQL 中,表名的大小写敏感性取决于操作系统和MySQL的配置。

  1. UNIX-like 系统: 在 UNIX-like 的操作系统中(例如 Linux),默认情况下,表名是大小写敏感的。这是因为在这些系统中,InnoDB 表的数据是以文件形式存储的,文件名是大小写敏感的。

  2. Windows: 在 Windows 系统中,表名默认是大小写不敏感的。

  3. 配置影响: MySQL 的 lower_case_table_names 系统变量决定了表名的大小写敏感性。这个变量有三个可能的值:

    • 0: 表名存储为给定的大小写,比较也是大小写敏感的。这通常是 UNIX-like 系统的默认设置。
    • 1: 表名在磁盘上存储为小写,但比较是大小写不敏感的。这通常是 Windows 系统的默认设置。
    • 2: 表名存储为给定的大小写,但比较是大小写不敏感的。这在某些 UNIX-like 系统中可以使用,但不建议这样做。

对于 MySQL 8.0,这些行为没有与早期版本的 MySQL 有显著不同。所以,在 MySQL 8.0 的 UNIX-like 系统上,默认情况下,表名是大小写敏感的。如果你在使用中发现不同的行为,可能是因为配置或其他外部因素的影响。

UNIX-like 系统的Linux版本有哪些能给我举例吗?

当我们说到 “UNIX-like” 或 “类UNIX” 系统时,我们指的是那些遵循 UNIX 原则和设计哲学的操作系统。Linux 就是其中最流行的一种。但除了 Linux,还有许多其他的 UNIX-like 系统。以下是一些例子:

  1. Linux: 这实际上是一个大家族,因为有很多基于 Linux 内核的发行版。例如:

    • Ubuntu
    • Debian
    • Fedora
    • CentOS
    • Red Hat Enterprise Linux (RHEL)
    • Arch Linux
    • openSUSE
    • Slackware
    • Gentoo
      … 以及许多其他发行版。
  2. BSD: 这是 UNIX 的另一个大家族,有以下几个主要的变种:

    • FreeBSD
    • OpenBSD
    • NetBSD
    • DragonFly BSD
  3. macOS (之前称为 Mac OS X): Apple 的操作系统是基于 NeXTSTEP 和 BSD 的,因此也是一个 UNIX-like 系统。

  4. Solaris: 最初由 Sun Microsystems 开发,后来被 Oracle 采购。这是一个商业 UNIX 系统,但也有一个开源版本叫做 OpenSolaris(现在不再活跃)。

  5. AIX: 由 IBM 开发的 UNIX 系统,用于其自家的服务器硬件。

  6. HP-UX: 由 Hewlett-Packard 开发的 UNIX 系统,用于其自家的服务器硬件。

这些只是最知名的 UNIX-like 系统的例子。实际上,还有许多其他的 UNIX 变种和派生系统。

你可能感兴趣的:(Java代码的微搜索,MySQL,java,mysql)