MySql现在更改了lower_case_table_names,我无法选择表格

时间:2016-03-04 13:10:11

标签: mysql

我做了this以便能够创建大写的表格,现在当我尝试更改,选择或对上面的套接字类做任何事情我有一个错误,因为它寻找一个较低的套装版本的它

SELECT cust_id FROM Customer LIMIT 0, 1000
Error Code: 1146. Table 'toys.customer' doesn't exist

我正在使用架构"玩具"并且它有一个 Customer 表,我正确创建了

1 个答案:

答案 0 :(得分:1)

在my.cnf中,执行lower_case_table_names = 2,使用大写

从Mysql手册,关于lower_case_table_names值:

0 使用CREATE TABLE或CREATE DATABASE语句中指定的lettercase将表和数据库名称存储在磁盘上。名称比较区分大小写。如果在具有不区分大小写的文件名(例如Windows或OS X)的系统上运行MySQL,则不应将此变量设置为0。如果在不区分大小写的文件系统上使用--lower-case-table-names = 0强制此变量为0并使用不同的字母表访问MyISAM表名,则可能会导致索引损坏。

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

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

在Unix上,lower_case_table_names的默认值为0.在Windows上,默认值为1.在OS X上,默认值为2.

编辑my.cnf后,不要忘记重启MySQL。