mysql修改lower_case_table_names产生的问题

时间:2023-03-09 22:21:02
mysql修改lower_case_table_names产生的问题

1、参数含义:
lower_case_table_names: 此参数不可以动态修改,必须重启数据库
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的

2 大小写区分规则

  • linux下:
    ​ 数据库名与表名是严格区分大小写的;
    ​ 表的别名是严格区分大小写的;
    ​ 列名与列的别名在所有的情况下均是忽略大小写的;
    ​ 变量名也是严格区分大小写的;

  • windows下:

​ 都不区分大小写

  • Mac OS下(非UFS卷):

​ 都不区分大小写

unix下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2 .

在windows 设置lower_case_table_names=2 的数据库 生成sql脚本 导入到 Linux系统下 设置为lower_case_table_names = 1的

提示 找不到数据库,表名和存储过程的错误解决方法

在mysql客户端 导出 sql脚本 保存到 word文档中 同时按键 SHIFT+F3键 把所有的小写转换成大写,再按一次 把所有的大写转成小写字母 ,

执行小写字母的sql脚本 到 Linux系统下 设置为lower_case_table_names = 1的mysql中即可。