• 范特西
    2024-08-26 来自浙江
    在 linux 系统里面 lower_case_table_names 只支持设置为 0 或者 1,设置为 0 表示区分大小写,按照用户输入存储,设置为 1 表示不区分大小写,用户创建表名为大写时会按照小写存储,设置为 0 可能会出现两种命名方式,驼峰或者下划线,从标准化的角度想,希望表命名规则是统一的,可读性高,设置为 1 时,相当于数据库表名只能有下划线一种规则,所以推荐为 1

    作者回复: 对的。 我也是建议lower_case_table_names都设置为1。 这样即使是跨操作系统迁移数据库,也不会出现表名大小写的问题。

    
    
  • Geek_534391
    2024-08-26 来自浙江
    lower_case_table_names参数一般推荐设置成1,这样库名表名不区分大小写。

    作者回复: 是的。 我也是建议lower_case_table_names设置为1。

    
    
  • ls
    2024-08-26 来自上海
    在 Unix 上lower_case_table_names的默认值为 0。在Windows上默认值为 1。在macOS 上默认值为 2 0表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,MySQL 内部对表名的比较也是区分大小写的; 1表示,表在文件系统存储的时候,对应的文件名都小写的,MySQL 内部对表名的比较是转成小写的,即不区分大小写; 2表示,表在文件系统存储的时候,对应的文件名是按建表时指定的大小写存的,但是 MySQL 内部对表名的比较是转成小写的,即不区分大小写。 0适用于区分大小写的系统,1都适用,2适用于不区分大小写的系统。

    作者回复: 对参数lower_case_table_names的作用解释得很全面,👍👍。 我倾向于在所有的环境下,都将lower_case_table_names设置为1,保持一致。

    
    