我做了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表名,因为它将搜索小写名称。 有没有人有线索?
答案 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中的表名全部小写,不要骆驼案。我也建议对数据库和列名称使用相同的内容。