Mycat连接数据库之后导致表名全小写的问题分析研究

初步研究:通过部署发现在Mycat中部署逻辑表表名大小写混合时,在Mycat连接后出现全变小。容易造成错误逻辑表(按混合表名创建物理表);

可能拯救的方法:

1、Linux下部署安装MySQL,默认不忽略表名大小写,需要手动到/etc/my.cnf下配置lower_case_table_names=1使Linux环境下MySQL忽略表名大小写,否则使用Mycat的时候会提示找不到表的错误!

2、官方上的Issues提到:在1.6.5 版本上验证没有出现这个问题。选择升级。

说明:

以上方法不一定可行,需要实践。可能还停留在实用阶段,对Mycat的理念还不是很了解导致上述的问题出现。

参考:

https://github.com/MyCATApache/Mycat-Server/issues/1498

http://it.dataguru.cn/thread-624130-1-1.html

时间: 2024-11-03 22:34:47

Mycat连接数据库之后导致表名全小写的问题分析研究的相关文章

让 MySQL 在 Linux 下表名不区分大小写(实为表名全小写)

把 Windows 下的应用部署到 Linux 下,使用到了 Quartz 集群的特性,所以建了 MySql 的中间表,一启动看到报错: Invocation of init method failed; nested exception is org.quartz.JobPersistenceException: Couldn't retrieve trigger: Table 'unmijob.QRTZ_TRIGGERS' doesn't exist [See nested exceptio

当JPA遇上MySQL表名全大写+全小写+驼峰+匈牙利四风格

我一直知道的MySQL在Linux上有字段名表名等的大小写问题,于是为了避免这个问题,选择了下划线和全小写,心说虽然咱用的是JPA,只要使用注解写清楚表名和字段名是大写的,不也没事么.例如这样 实际上证明,想象比搬砖生活丰富的多.亲们,我用JPA实现查表操作的时候,Exception跳出来说表不存在,因为表名是全小写的,我还能怎样┑( ̄Д  ̄)┍.接下来,折腾才刚刚开始--不妨看下日志,内心异常的沉重 2019-09-24 17:31:16.407 ERROR 25864 --- [ XNIO-

MySQL表名大小写敏感导致的问题

最近在项目中遇到一个比较奇怪的小问题.在开发过程中自己测试没有问题,但是提测后,测试的同时在测试一个功能时报错了,日志是: Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'testdb.Emp' doesn't exist 1 于是乎打开数据库客户端,发现testdb数据库有这张表,真是奇怪.项目本地测试还是没问题,纠结了半天,才留意到代码中表名是Emp,而数据库中是emp.原来是表名大小写

表名在数据库中的存储大写和小写略解

今天同事表示对于自己创建的表名是小写.在expdp的parfile中.include=view:"('view_name')",这个view_name用小写为什么提示: ORA-39168: Object path VIEW was not found. ORA-31655: no data or metadata objects selected for job 我表示建立视图的时候是小写,可是它存在数据字典中的时候,自己主动会变成大写.这是Oracle的存储方式. create t

linux系统下MySQL表名区分大小写问题

问题如下: 比如上图中的PERSON表,查询SQL语句中如果表名是小写,就会报错说person表不存在. 因为Linux环境下的MySQL数据库的表名默认是区分大小写的,可以查看Linux上的MySQL的配置文件/etc/my.cnf: [[email protected]_219_131_centos tomcat7]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=m

mysql在windows下支持表名大小写,lower_case_table_names

原文:mysql在windows下支持表名大小写,lower_case_table_names windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感. 用phpmyadmin创建的驼峰式表名,全部被强制成小写. mysql表名大小写敏感的参数:lower_case_table_names. Windows2012 下的C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 文件 在[mysqld]下加上lower_case_table_nam

linux下mysql表名大小写敏感的问题

执行sql: show global variables like '%lower_case%'; lower_case_file_system:表示当前系统文件是否大小写敏感,只读参数,无法修改ON 大小写不敏感 OFF 大小写敏感 lower_case_table_names:这个选项不仅仅适用于表名的大小写敏感,同样适用于数据库名和表别名.该变量取值范围有三个,分别是0.1.2. 设置成0:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时大小写敏感. 设置成1:表名转小写后存储到

mysql linux下表名忽略大小写注意事项

在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2.这样了可以保留数据库名和表名的大小写.不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名.如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作.例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写.请注意在Unix中将lower_

mysql表名忽略大小写配置

linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_case_table_names = 0 区分大小写(即对大小写不敏感),默认是这种设置.这样设置后,在mysql里创建的表名带不带大写字母都没有影响,都可以正常读出和被引用. 2)lower_case_table_names = 1 不区分大小写(即对大小写敏感).这样设置后,表名在硬盘上以小写保存,MySQL将所有表名转换为小写存储和查