首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql更改了lower_case_table_names现在我无法选择表

问MySql更改了lower_case_table_names现在我无法选择表
EN

Stack Overflow用户
提问于 2016-03-04 13:10:11
回答 1查看 2.6K关注 0票数 3

我做this是为了能够创建基于大小写的表,现在当我试图更改、选择或使用大小写类做任何事情时,我有一个错误,因为它查找的是一个小写的大小写版本。

代码语言:javascript
复制
SELECT cust_id FROM Customer LIMIT 0, 1000
Error Code: 1146. Table 'toys.customer' doesn't exist

我使用的是模式“玩具”,它有一个我正确创建的客户表。

EN

回答 1

Stack Overflow用户

发布于 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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35796950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档