【MySQL配置】lower_case_table_names

说明default value

原文去官网看吧!大致说明如下:

如果设置为 0,则按指定存储表名,并且比较区分大小写。
如果设置为 1,则表名以小写形式存储在磁盘上,并且比较不区分大小写。
如果设置为 2,则表名按给定方式存储,但以小写形式进行比较。 此选项也适用于数据库名称和表别名。

macOS默认值2,Unix默认值0,Windows默认值1
在 Linux(和其他类 Unix 系统)上,不支持将值设置为 2; 服务器将值强制为 0。

如果您在数据目录位于不区分大小写的文件系统(例如 Windows 或 macOS)上的系统上运行 MySQL,则不应将 lower_case_table_names 设置为 0。 这是一个不受支持的组合,当使用错误的 tbl_name 字母大小写运行 INSERT INTO … SELECT … FROM tbl_name 操作时,可能会导致挂起情况。 使用 MyISAM,使用不同字母大小写访问表名可能会导致索引损坏。

如果您尝试在不区分大小写的文件系统上使用 --lower_case_table_names=0 启动服务器,则会打印一条错误消息并退出服务器。

官方文档地址

修改配置文件

linux系统为:my.cnf
windows为:my.ini
my.cnf

查看

使用说明里面的系统变量进行查看,查看系统变量有两种方式
方式一:

select @@lower_case_table_names;

方式二:

show variables like 'lower_case_table_names';
### 如何在 MySQL 5.7 中正确修改 `lower_case_table_names` 参数 在 MySQL 5.7 中,`lower_case_table_names` 参数用于控制数据库和表名的大小写敏感性。该参数的设置会影响数据库和表名的存储方式以及查询时的匹配规则。以下是关于如何正确修改 `lower_case_table_names` 参数的设置指南及注意事项。 #### 设置方法 1. **确认当前值**:首先需要确认当前 `lower_case_table_names` 的值。 ```sql SHOW VARIABLES LIKE 'lower_case_table_names'; ``` 如果返回值为 `0`,表示区分大小写;如果返回值为 `1`,表示不区分大小写且以小写形式存储[^4]。 2. **修改配置文件**:编辑 MySQL 配置文件(通常是 `my.cnf` 或 `my.ini`),添加或修改以下内容: ```ini [mysqld] lower_case_table_names=1 ``` 这里的值可以是 `0`、`1` 或 `2`,具体含义如下: - `0`:区分大小写(仅适用于 Windows 和 macOS)。 - `1`:不区分大小写,所有名称都以小写形式存储。 - `2`:不区分大小写,但保留原始名称的大小写形式(仅适用于 Windows 和 macOS)[^5]。 3. **重启 MySQL 服务**:保存配置文件后,重启 MySQL 服务以使更改生效。 ```bash systemctl restart mysql ``` 4. **验证修改结果**:再次运行以下命令以确认参数已成功修改。 ```sql SHOW VARIABLES LIKE 'lower_case_table_names'; ``` #### 注意事项 - **数据一致性问题**:如果在 Unix 系统中将 `lower_case_table_names` 从 `0` 修改为 `1`,必须确保所有现有的数据库和表名都是小写的。否则,可能会导致无法访问旧的表或数据库[^5]。 - **不可动态修改**:`lower_case_table_names` 是一个静态参数,无法在运行时动态修改,必须通过修改配置文件并重启服务来生效[^2]。 - **升级兼容性**:如果计划从 MySQL 5.7 升级到更高版本(如 MySQL 8.0),需要注意某些云服务(如 AWS RDS)可能不允许更改 `lower_case_table_names` 参数。例如,在 AWS RDS 中,从 MySQL 5.7 升级到 8.0 时,可能会遇到错误提示“The parameter value for lower_case_table_names can't be changed for MySQL 8.0 DB instances.”[^3]。 - **命名规范建议**:为了避免大小写敏感性带来的问题,推荐在定义数据库、表和列时使用全小写字母加下划线的方式,避免使用大写字母[^5]。 ```python # 示例:Python 脚本检查 MySQL 配置 import mysql.connector connection = mysql.connector.connect( host="localhost", user="root", password="password" ) cursor = connection.cursor() cursor.execute("SHOW VARIABLES LIKE 'lower_case_table_names';") result = cursor.fetchone() print(f"lower_case_table_names: {result[1]}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值