我做this是为了能够创建基于大小写的表,现在当我试图更改、选择或使用大小写类做任何事情时,我有一个错误,因为它查找的是一个小写的大小写版本。
SELECT cust_id FROM Customer LIMIT 0, 1000
Error Code: 1146. Table 'toys.customer' doesn't exist我使用的是模式“玩具”,它有一个我正确创建的客户表。
发布于 2016-03-04 13:27:43
在my.cnf do lower_case_table_names=2中,使用上一种情况
来自Mysql手册,关于lower_case_table_names值:
使用CREATE或CREATE语句中指定的字母将表和数据库名称存储在磁盘上。名称比较区分大小写。如果在具有不区分大小写的文件名(如Windows或OS )的系统上运行MySQL,则不应将此变量设置为0。如果在不区分大小写的文件系统中强制此变量为-小写表名=0,并使用不同的字母来访问MyISAM表名,则可能会导致索引损坏。
1表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL在存储和查找时将所有表名转换为小写。此行为也适用于数据库名称和表别名。
2表和数据库名称使用CREATE或CREATE语句中指定的字母存储在磁盘上,但MySQL在查找时将它们转换为小写。名称比较不区分大小写。这只在不区分大小写的文件系统上工作!InnoDB表名以小写形式存储,lower_case_table_names=1也是如此。
在Unix上,lower_case_table_names的默认值是0。在Windows上,默认值是1。在OS上,默认值是2。
编辑my.cnf值后,不要忘记重新启动MySQL。
https://stackoverflow.com/questions/35796950
复制相似问题