网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

如何设置MySQL的lower_case_table_names参数为1?

GG网络技术分享 2026-04-17 00:51 1


前言:别再被大小写坑得满头大汗!

说真的, MySQL里那玩意儿 lower_case_table_names简直是“大小写的灵魂拷问”。有的同学把它当成装逼神器有的同学却主要原因是它在Linux上=0而每天抓狂。 搞一下... 今天 我就把这件事讲得像一锅乱炖——不求条理,只求情绪爆炸顺带扔进几段奇怪的代码和一张莫名其妙的产品对比表,让你读完后还能笑出声。

一、 先看看你到底是啥情况

打开终端,敲:

 mysql 参数lower_case_table_names的修改

show variables like '%case%';

如果看到:

Variable_nameValue
lower_case_table_names0
lower_case_file_systemOFF

恭喜,你现在正处在“大小写敏感模式”。这时候想改成=1 相当于 我怀疑... 给数据库装上了防弹眼镜——所有表名都强行变小写,不再区分大小写。

二、 先把“大写怪兽”全灭掉

别急着改参数,先把库里那些“高调”的大写表名统统干掉!否则重启后 你会看到类似:


ERROR 1146 : Table 'test.TABLE' doesn't exist

解决办法:

  • 手动Rename: RE不结盟E TABLE TestTable TO testtable;
  • 导出再导入: 先用mysqldump --skip-lock-tables --no-data ... | tr 'A-Z' 'a-z'把DDL全转成小写,再重新施行。
  • Pythonscript暴力改名: 下面这段神奇脚本会遍历信息_schema, 把所有表名强制小写:
    
    import pymysql
    conn = pymysql.connect
    cur = conn.cursor
    cur.execute")
    for db, tbl in cur.fetchall:
        new_tbl = tbl.lower
        cur.execute
    conn.commit
    

三、正式修改配置文件——不讲道理只讲感受!

# 关键一步:编辑 /etc/my.cnf


# 找到  段落, 如果没有就自己加一段
lower_case_table_names=1   # 把这里改成1
# 记得别忘了下面这句,主要原因是Linux默认是区分大小写
lower_case_file_system=OFF

挺好。 *注意*: 这个变量不能动态修改**,必须重启 MySQL 服务**才会生效。

四、血泪重启:让 MySQL 听见你的怒吼!


systemctl restart mysqld   # 或者 service mysql restart
# 如果你是用 docker,就 exec 进去 kill -9 $ 再启动容器
# 有些老系统只能直接 /etc/init.d/mysqld restart
# 重启失败?检查日志 /var/log/mysqld.log 看看有没有 “Different lower_case_table_names settings” 报错

If you see:


  Different lower_case_table_names settings for server  and data dictionary .
 Data Dictionary initialization failed.

四点血泪经验分享:

  • #1: 一定要在初始化阶段就决定好这个值。
  • #2: 如果已经跑起来了那就"删库跑路"。切记备份!⚠️
  • #3: 不要在 Windows 上直接把它设为 2 再搬到 Linux —— 那叫一个“灾难”。
  • #4: 千万别忘了把所有 .frm/.ibd/.myd/.myi 文件名字也改成小写,否则磁盘上仍然残留大写痕迹。

五、 随机插入的“产品对比表”——纯属噪音,请忽略!😜

免费 注:以上价格均为假设,仅作娱乐使用。 本表格与本文主题无关, 仅为填充噪声,请勿当真。
# 排名产品名称 & 简介 价格
—— 数据库管理工具大比拼 ——
1️⃣ DBeaver 免费
2️⃣ Squirrel SQL Client ¥199/年
3️⃣ Aqua Data Studio ¥3989/永久
4️⃣ Mysql Workbench
5️⃣ Navicat Premium ¥1999 / 永久

六、常见坑点&应急方案​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​‌‍‍‍‍‌‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‪‬


提交需求或反馈

Demand feedback