易截截图软件、单文件、免安装、纯绿色、仅160KB

CentOS下无法正常获取MySQL数据库表数据的问题

 
之前,由于客户要求在centOS下安装系统应用,因此有机会接触了一下CentOS,顺便也了解了下CentOS的常规操作,还有在CentOS下的MySQL相关操作。
目前技术框架使用JSF(richfaces、facelets)+Spring+JPA(OpenJPA),不使用数据库依赖的触发器或存储过程,所有业务逻辑在web服务器上执行,因此数据库基本不用考虑移植问题。但是本来在windows下运行正常的系统,在linux下却没法获取一些表的内容。由于数据库的初始化,最初只是体现在几个需要手工维护的表数据上,最终却发现原来是因为数据库表名大小写的问题!
具体操作过程:
在windows下,使用MySQL的客户端工具“Navicat”,将当前的数据库导出到test.sql文件中。说明:导出的.sql文件中,所有的表名都是小写。
将导出的.sql文件拷贝至linux下,导入需要使用的数据库中
启动web服务器,访问服务。问题出现:许多表无法访问。
在mysql中使用“show
tables;”命令,发现表名有重复,重复的表名区别在于大小写,大写的表名与对应的实体bean名相同。找到问题:表名大小写造成的数据无法访问。(linux 下的 MySQL 安装完后,默认区分表名的大小写,不区分列名的大小写;Windows下默认不区分大小写 )
上述问题有两种解决方案:
在JPA的实体bean的声明中,使用“Table”的“name”属性,指定表名,表名尽量全部使用小写,不同单词之间使用下划线连接(例如:@Table(name="sys_user")

使用Linux下MySQL的相关参数,使MySQL不区分大小写(
lower_case_table_names=1

上述两种方法,第一种是较为通用的解决方案,但是需要开发人员更改全部的实体bean,然后重新编译;第二种方案适合于系统已经进入生产环境的状况,并且对如何修改linux下的MySQL配置需要一定的专业知识及经验,对实施人员技术要求较高。
关于如何修改CentOS下的MySQL不区分大小写的具体操作方法:
用 root 帐号登录后,在 /etc/my.cnf 中的 [mysqld] 后添加添加 lower_case_table_names=1 ,重启Mysqld 服务。服务重新启动之后,已设置成功:不区分表名的大小写
关于lower_case_table_names 参数详解: lower_case_table_names参数有两个值:[0、1 ]其中 0 :区分大小写, 1 :不区分大小写
补充说明:
关于持久层,使用Spring自动生成的DDL来创建对应的持久层数据库表及索引等数据,简化实施工作的复杂度


相关文档:

MYSQL在Windows 2003上连接不上的解决方法

今天搭建mysql数据库,连接了半天,都提示10061错误,以为密码出了问题试了半天,压根连服务都连接不上,忙活了半个多小时,才发现是系统补丁打了之后出现的问题(kb967723)
于是网上找了一下资料
最近一个客户服务器的MYSQL频繁提示连接不上,修改了MYSQL的最大连接数还是这样,于是开始问万能的搜索引擎大人!终于在微软找到了 ......

使用C3P0连接Mysql的一个问题的解决过程


最近的一个项目在使用C3P0的连接池,数据库为Mysql。开发测试没有问题,在运行中每个一段长的空闲时间就出现异常Communications link failure due to underlying exception:
java 代码
查看了Mysql的文档,以及Connector/J的文档以及在线说明发现,出现这种异常的原因是:
Mysql服务器默认的“wait_timeout&rdquo ......

mysql can't create table errno 150

1、外键的引用类型不一样,主键是int外键是char
2、找不到主表中 引用的列
3、主键和外键的字符编码不一致
4.还有要建立外键的话,要先建立索引。没有建立索引也会出错。
我的问题解决方案是在sql后面加上了如下句话,ok!成功导入脚本
ENGINE=MyISAM DEFAULT CHARSET=utf8;
charset对应的换成你的主键表的字符集 ......

mysql中用命令修改表结构的方法

ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec …]
alter_specification:
       ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
   or ADD INDEX [index_name] (index_col_name,…)
   or ADD PRIMARY KEY (index_col_name,&hell ......

【转】MySQL优化简明指南

一、在编译时优化MySQL 
如果你从源代码分发安装MySQL,要注意,编译过程对以后的目标程序性能有重要的影响,不同的编译方式可能得到类似的目标文件,但性能可能相差很大,因此,在编译安装MySQL适应仔细根据你的应用类型选择最可能好的编译选项。这种定制的MySQL可以为你的应用提供最佳性能。
技巧:选用较好的编 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号