【Ubuntu 22.04 安装Mysql 8.0 并设置大小写敏感lower_case_table_names属性】

文章讲述了在Ubuntu系统中安装Mysql8.0时遇到的大小写敏感问题,介绍了lower_case_table_names属性的作用以及如何在安装前设置该属性以解决区分大小写的问题。后续还提供了数据库重启失败后的解决方案和完整的安装过程,包括配置文件的备份与恢复、安全设置等。

安装过程中遇到的问题

在Ubuntu系统中使用apt安装完成Mysql8.0以后,发现数据库对大小写是敏感的,即只能查询到大小写完全匹配的表名和字段名。这时需要设置 lower_case_table_names=1来解决这个问题。具体属性如下(在 Unix 上,lower_case_table_names 的默认值为 0。上 Windows,默认值为 1。在 macOS 上,默认值为 2.):

含义
0 表和数据库名称使用信箱存储在磁盘上 在 CREATE 中指定 TABLE 或 CREATE DATABASE 语句。名称比较是 区分大小写。你不应该设置 如果您在系统上运行 MySQL,则此变量设置为 0 具有不区分大小写的文件名(如 Windows 或 macOS)。如果在不区分大小写的文件系统上使用 --lower-case-table-names=0 强制此变量为 0,并使用不同的 Lettercase,可能会导致索引损坏。
1 表名以小写形式存储在磁盘上,名称比较不 区分大小写。MySQL将所有表名转换为 存储和查找时的小写字母。此行为还 适用于数据库名称和表别名。
2 表和数据库名称使用信箱存储在磁盘上 在 CREATE 中指定 TABLE 或 CREATE DATABASE 语句,但 MySQL 将它们转换为 查找时小写。名称比较不是 区分大小写。这仅适用于 不区分大小写的文件系统! 表名和视图名是 以小写形式存储,至于 .InnoDBlower_case_table_names=1

新的问题

设置完成lower_case_table_names=1后,数据库启动失败。官方给出的解释是,lower_case_table_names 属性需要再数据库初始化的之前设定,初始化完成后无法进行修改。针对Ubuntu系统需要在安装前执行以下命令,将大小写敏感属性设置为开启。
经过实际操作验证:不好使!不能解决问题!!

$> sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"

在这里插入图片描述

最终解决

参考解决方案地址:如何在Ubuntu Server 20.04 LTS上成功安装MySQL 8.0 with

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值