文档章节

mysql表名大小写敏感

xbuding
 xbuding
发布于 2016/04/24 21:51
字数 587
阅读 82
收藏 2
点赞 1
评论 0

在ubuntu下安装的mysql版本是 5.6.25-0ubuntu1 

linux下的mysql的表名是大小写敏范的。而在在windows下安装的mysql是大小写不敏感的。

原因是因为lower_case_table_names该属性在linux下默认为0,windows下默认为1

0---大小写敏感

1---大小写不敏感

所以通过修改mysql的my.cnf的配置,既可以达到大小写不敏感.

linux下修改my.cnf(如果是ubuntu的版本,不存在/ect/my.cnf而是存在于,/ect/mysql/my.cnf)来修改该配置:

在[mysqld]组中,添加如下语句:

[mysqld]
lower_case_table_names = 1

然后重启 service mysql restart即可。

 

由于之前本人建了一张EMP的表(在lower_case_table_names=0的时候):

CREATE TABLE EMP (
    ENAME VARCHAR(10),
    HIREDATE DATE,
    SAL DECIMAL(10,2)
);

是大写的表名。在修改配置之后,大小写不敏感了。

使用如下sql语句均报错:

DESC emp; 
DESC EMP;

均报同样的错误:

[Err] 1146 - Table 'test.emp' doesn't exist

按正常来说,如果DESC EMP;应该报: 

[Err] 1146 - Table 'test.EMP' doesn't exist

才对的,但是,两者却是报同样的错误。

然后查看文档:

Value   Meaning  
0   Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE 
     statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a 
     system that has case-insensitive file names (such as Windows or Mac OS X). If you force this variable to 0 with
     --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases,
      index corruption may result.  
1   Table names are stored in lowercase on disk and name comparisons are not case sensitive. MySQL converts all table 
     names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.  
2   Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE 
     statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only
     on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as forlower_case_table_names=1.

可以看出

0是严格按找字母大小写查找

2是通过把大写转换成小写再进行查询(前提是大小写不敏感)。所有在已经存在大写的表时,转换成小写时,就找不到原来表,表名是EMP,但是更改配置后,查询表名的时候查找名称为emp的表,故而报[Err] 1146 - Table 'test.emp' doesn't exist,

通过把lower_case_table_names调节为0,然后将表名改回小写,然后,再调节回1.问题即可解决。

 

© 著作权归作者所有

共有 人打赏支持
xbuding
粉丝 4
博文 35
码字总数 12103
作品 0
广州
Mysql数据库名和表名的大小写敏感性问题

数据库和表名在 Windows 中是大小写不敏感的 ,而在大多数类型的 Unix 系统中是大小写敏感的 Windows 版的 MySQL 默认继承 os 的大小写习惯,即使 SQL中有区分,在导入的时候都会被转为小写,...

mjrao
2014/02/14
0
0
linux mysql 大小写问题

show variables like '%case%' mysql 在linux中与windows中是不同的。在windows中建表表名是不区分大小写的,而在linux是区分大小的的、但是linux中是可以设置的。 ------------------------...

Zero零_度
2016/10/28
14
0
linux mysql 大小写问题

mysql 在linux中与windows中是不同的。在windows中建表表名是不区分大小写的,而在linux是区分大小的的、但是linux中是可以设置的。 ----------------------------------------------- 以下的...

王小盼
2016/05/05
33
0
解决mysql数据库大小写敏感问题

今天在部署java项目到linux服务器上去的时候出现了个小问题,数据库是mysql,项目在我本地(windows环境下)是没问题的。错误信息:2012-09-06 00:01:29,314 INFO [org.springframework.jdbc....

java_T
2012/09/06
0
4
【mark】centos下,更改mysql数据库表名大小写敏感

Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写; root登录,修改/etc/my.cnf,在末尾添加一行:lowercasetablenames=1 lowercasetablenames参数: 0为敏感,1为不敏感。...

youway
2014/10/13
0
0
linux下Mysq表名的大小写问题解析

这些天把项目都转移到新的Linux服务器上来,发现总是报无法找到表的错误。 ssh进去mysql下: 然后发现卧槽有啊。。。 回来发现输出信息均为未找到“TUSER”大写字样。回来想可能是用mybatis...

aijfanta
2016/04/16
88
0
mysql字符集与校对规则---大小写敏感那点事

在关系型数据库中,oracle/sql_server/db2都有对数据进行区分大小写,不过mysql有点奇怪,对数据不区分大小写,详细情况请看下面解析. MySQL在Linux下数据库名、表名、列名、别名大小写的默认规则...

arthur376
2017/05/18
0
0
MySQL 字段内容区分大小写

数据由Oracle 迁入MySQL ,由于之前Oracle区分大小写,MySQL的配置使用了默认配置,导致一些数据导入失败,有的唯一键报错,冲突。 将测试过程记录在下面。 数据库版本:MySQL 5.7.11 引用他...

Amnesiasun
2017/06/01
0
0
mysql大小写问题

MySQL的大小写问题 不是一个很大的问题,但是如果不了解的话,却会使用户产生迷惑 ;如下面 insert into t values('A'); insert into t values('a'); 当第二条执行的时候,如果是主键或者有唯...

foolbenben
2012/10/10
0
0
Mysql大小写敏感的问题

一、1 CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT FROM TABLE NAME WHERE name='clip'; SELECT FROM TABLE NAME WHERE name='Clip'......

lw_tao
2015/03/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

arts-week1

Algorithm 594. Longest Harmonious Subsequence - LeetCode 274. H-Index - LeetCode 219. Contains Duplicate II - LeetCode 217. Contains Duplicate - LeetCode 438. Find All Anagrams ......

yysue
11分钟前
0
0
NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
43分钟前
0
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
0
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
1
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
6
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部