osx更新后的mysql tablename小写

时间:2016-08-04 13:24:25

标签: mysql macos

我做了OSX更新:

https://support.apple.com/en-us/HT206770

之后似乎mysql将我的所有新表保存为小写。

我使用MAMP 3.5.2。 mysql设置是Mac OSX的默认设置

/Applications/MAMP/Library/bin/mysqladmin variables | grep case
| lower_case_file_system                            | ON                                                                                                                     |
| lower_case_table_names                            | 2                                                                                                                      |

我注意到使用了:

[mysqld]
lower_case_table_names=1

保存我的表camelCased但是,使用此设置它不允许搜索camelCased表名,因为它将搜索小写名称。 有没有人有线索?

1 个答案:

答案 0 :(得分:2)

OSX默认使用日志不区分大小写的文件系统。

lower_case_table_names = 1

  

表名以小写形式存储在磁盘上,名称比较不区分大小写。 MySQL在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。

基于lower_case_table_names = 2

的设置选项
  

表和数据库名称使用CREATE TABLE或CREATE DATABASE语句中指定的字母大小存储在磁盘上,但MySQL在查找时将它们转换为小写。名称比较不区分大小写。这仅适用于不区分大小写的文件系统! InnoDB表名以小写形式存储,与lower_case_table_names = 1一样。

请注意,使用此设置,即使您在Mysql中启用了区分大小写,Mysql仍会将innodb .ibd文件保存为小写(它确实会保存.frm表(camel case)。

所以,根据医生的说法,它的表现如预期的那样。

带走: 你总是无法控制文件系统(有人将你的架构移植到运行在linux,windows等上的mysql ......),所以总是假设它不区分大小写并坚持使用mysql中的表名全部小写,不要骆驼案。我也建议对数据库和列名称使用相同的内容。

相关问题