文档章节

解决mysql数据库大小写敏感问题

java_T
 java_T
发布于 2012/09/06 13:15
字数 468
阅读 4906
收藏 2

今天在部署java项目到linux服务器上去的时候出现了个小问题,数据库是mysql,项目在我本地(windows环境下)是没问题的。错误信息:2012-09-06 00:01:29,314 INFO [org.springframework.jdbc.datasource.JdbcTransactionObjectSupport]
 - <JDBC 3.0 Savepoint class is available>
2012-09-06 00:01:29,903 WARN [org.hibernate.util.JDBCExceptionReporter]
 - <SQL Error: 1146, SQLState: 42S02>
2012-09-06 00:01:29,903 ERROR [org.hibernate.util.JDBCExceptionReporter]
 - <Table 'mobilesys.T_UUU' doesn't exist>

开始以为是配置文件配错了,改了几遍,还是同样的问题,于是上网找原因,结果发现是数据库配置问题。
主要原因是:“MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。
MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。
WINDOWS:
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。
LINUX:
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。”(引用网上文章中的句子)。

当然,这样虽然解决了问题,但是,把大小写敏感去掉的话,也不是一件好事,肯定会存有很多隐患....最好还是修改映射文件中的table属性对应的值,将里面的表名和数据库中的表名大小写一样。这样做感觉合理一点.....

© 著作权归作者所有

java_T

java_T

粉丝 34
博文 73
码字总数 13320
作品 0
深圳
高级程序员
私信 提问
加载中

评论(4)

java_T
java_T 博主

引用来自“IceRainYWC”的评论

嗯,这个以后编程中还真得注意了。此外楼主用其他框架了吗,如hibernate或ibatis之类的,这些框架会不会已经考虑和解决了这个问题呢?

用hibernate框架的,不过,没怎么注意这方面的问题,因为以前没碰到过...只是最近才发现的,有时间得去看看是不是框架里面有解决这问题的功能
IceRainYWC
IceRainYWC
嗯,这个以后编程中还真得注意了。此外楼主用其他框架了吗,如hibernate或ibatis之类的,这些框架会不会已经考虑和解决了这个问题呢?
java_T
java_T 博主
恩,那样做也蛮好的
鉴客
鉴客
我们规定代码中涉及的表名都必须是小写
解决MySQL查询不区分大小写

今天遇到一个情况, 查询数据时查询条件输入不管大小写,都能查到同样的数据。 比如: 输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件是大小写不敏感的。 因为程序使用了hibernate...

肥皂泡2
2011/10/26
11.4K
0
LOWER_CASE_TABLE_NAMES

http://blog.csdn.net/jesseyoung/article/details/40617031 1 简介 在MySQL中,数据库对应数据目录中的目录。数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎...

dragon_tech
05/09
10
0
linux下Mysq表名的大小写问题解析

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

aijfanta
2016/04/16
182
0
Mysql数据库名和表名的大小写敏感性问题

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

mjrao
2014/02/14
83
0
在OpenWrt路由器上安装和部署MySQL Server

在OpenWrt路由器上安装和部署MySQL Server 树叶的BLOG2017-12-033 阅读 MySQL 说明 今天Windows上的MySQL突然不能运行了,正好有一个项目需要使用MySQL数据库,于是想试试将MySQL Server部署...

树叶的BLOG
2017/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
4
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
8
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部