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

2023-10-13 05:20

本文主要是介绍mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

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 变种和派生系统。

这篇关于mysql8为什么要开启mysql5中原先的表名称大小写不敏感变成大小写敏感的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201036

相关文章

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

idea如何开启菜单栏

《idea如何开启菜单栏》文章介绍了如何通过修改IntelliJIDEA的样式文件`ui.lnf.xml`来重新显示被关闭的菜单栏,并分享了解决问题的步骤... 目录ijsdea开启菜单栏第一步第二步总结idea开启菜单栏手贱关闭了idea的js菜单栏,花费了半个小时终于解决,记录并分享一下第一步找

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

如何开启WinRM服务?

https://support.huaweicloud.com/vss_faq/vss_01_0179_04.html WinRM(Windows 远程管理,Windows Remote Management)是WEB服务管理在微软的Microsoft Windows中的实现,它允许处于一个共同网络内的Microsoft Windows计算机彼此之间互相访问和交换信息。在一台机器启用WinRM后