MySQL中的表名大小写敏感性取决于操作系统和MySQL配置文件(my.cnf或my.ini)中的设置。在Linux系统中,默认情况下,MySQL表名是区分大小写的;而在Windows系统中,默认情况下是不区分大小写的。可以通过修改MySQL配置文件中的lower_case_table_names
参数来改变这一行为。
lower_case_table_names=0
的MySQL实例中,表名是区分大小写的。lower曲_table_names=1
或lower_case_table_names=2
的MySQL实例中,表名是不区分大小写的。原因:Linux系统默认区分文件名大小写,MySQL也继承了这一特性。如果lower_case_table_names=0
,MySQL会严格区分表名的大小写。
解决方法:
/etc/my.cnf
或/etc/mysql/my.cnf
),将lower_case_table_names
设置为1或2:/etc/my.cnf
或/etc/mysql/my.cnf
),将lower_case_table_names
设置为1或2:-- 检查lower_case_table_names设置
SHOW VARIABLES LIKE 'lower_case_table_names';
-- 修改MySQL配置文件
sudo nano /etc/my.cnf
-- 添加或修改以下行
[mysqld]
lower_case_table_names = 1
-- 重启MySQL服务
sudo systemctl restart mysqld
-- 删除并重新创建表
DROP TABLE IF EXISTS table_name;
CREATE TABLE table_name (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
领取专属 10元无门槛券
手把手带您无忧上云