linux my.cnf中配置
[mysqld]
lower_case_table_names = 1在 MySQL 中,默认情况下表名是区分大小写的。不过,可以通过配置 MySQL 的服务器选项来改变这一行为,使表名大小写不敏感。
修改 MySQL 配置文件
要让 MySQL 表名大小写不敏感,您需要修改 MySQL 的配置文件 my.cnf 或 my.ini(取决于操作系统)。这些配置文件通常位于以下路径之一:
- Linux:
/etc/mysql/my.cnf或/etc/my.cnf - Windows:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
您需要编辑 [mysqld] 部分,添加或修改以下配置项:
-
lower_case_table_names:设置此选项为1可以使表名在 Windows 上大小写不敏感;设置为2可以使表名在 Linux 上大小写不敏感。
示例配置
打开 my.cnf 或 my.ini 文件,并添加或修改以下内容:
[mysqld]
lower_case_table_names=1 # Windows 上使表名大小写不敏感
# lower_case_table_names=2 # Linux 上使表名大小写不敏感各平台的具体设置
- Windows:设置
lower_case_table_names为1。 - Linux:设置
lower_case_table_names为2。
注意事项
- 重启 MySQL 服务器:修改配置文件后,需要重启 MySQL 服务器以使更改生效。
- 现有表名:如果现有表名已经创建,更改此设置后,表名仍然会保留原来的大小写。新的表名将遵循新的大小写规则。
重启 MySQL 服务器
在修改配置文件后,您需要重启 MySQL 服务器。具体步骤取决于您的操作系统:
Linux
- 使用 systemctl 重启 MySQL 服务:
sudo systemctl restart mysqldWindows
- 打开“服务”管理工具。
- 找到 MySQL 服务并右击,选择“重启”。
验证设置
您可以使用以下 SQL 查询来验证 lower_case_table_names 的设置是否生效:
SHOW VARIABLES LIKE 'lower_case_table_names';输出应该是:
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| lower_case_table_names | 1 | -- 或者 2
+-------------------------+-------+创建和使用表
一旦配置生效,您可以创建表并测试大小写不敏感的功能:
创建表
CREATE TABLE TestTable (
id INT PRIMARY KEY
);大小写不敏感的测试
尝试使用不同的大小写来访问表:
SELECT * FROM testtable; -- 应该能够正常工作
SELECT * FROM TESTTABLE; -- 应该能够正常工作
SELECT * FROM TestTable; -- 应该能够正常工作注意事项
- 跨平台一致性:如果您需要在多个平台上保持表名的一致性,确保在所有平台上设置相同的
lower_case_table_names值。 - 现有数据库:更改此设置后,现有数据库中的表名仍然保持原来的大小写。新的表名将遵循新的大小写规则。
- 安全性:在某些情况下,表名区分大小写有助于防止潜在的安全问题。例如,在使用动态 SQL 时,恶意用户可能会利用大小写差异来执行意外的操作。因此,在设置
lower_case_table_names时要谨慎。










