Web程序连接MySql提示表找不到问题的分析
2011-12-08 11:04
267 查看
今天要将一个应用程序部署到服务器上,操作系统是Linux,应用服务器是JBoss。在JBoss启动完毕之后,发现程序并没有启动,查看日志,原来在启动程序时,应用程序需要连接MySql数据库,同时要查询其中的某张表,结果说找不到这张表,报出的错误类似于:can`t fing
dbName.TABLENAME(大写) 这种格式。
开始以为,是MySql的原因,因为据说在MySql5以后的版本中,数据库默认是不允许远端服务器访问的,于是用自己电脑上的MySql客户端去连接服务器,结果一切正常,又查看了一些权限的资料和查看数据库中的配置,况且数据库和应用程序在同一台机子上,那就排除了问题出在数据库权限上这个原因。
后来上网查了下,发现这个版本的MySql是区分大小写的,又查看了日志,发现日志中报错的表名果然是大写的,然后MySql客户端工具查看了下,显示数据库的表名都是小写。所以,怀疑是因为大小写的原因。于是开始分析程序执行的过程,由于ORM框架使用的是Hibernate,该框架会对表名进行封装,具体生成后的SQL语句是它根据配置文件来生成的,于是,我就查看了下Hibernate的配置文件,最后发现果然配置文件中的表名是大写的。
但是当前遇到了问题是,配置在Hibernate中的持久化PO非常多,如果要一个个地改太麻烦,于是想,能不能让MySql数据库忽略大小写,于是又查了相关的资料。原来在Linux上安装MySql时,默认是不忽略大小写的,但是可以通过修改配置文件可以让其忽略,网上说这个配置文件的全路径是/etc/my.cnf。大家知道,而查看后,发现当前系统下并没有这个文件,相关资料表明,这个文件默认的情况下并不存在,于是就想,是否可以自己配置下,于是,就从本地用记事本将:[mysqld]
lower_case_table_names=1这句代码保存起来,然后修改文件名为my.cnf之后用ftp上传到服务器上,重启MySql,运行程序,OK,问题解决。
总结:网上的很多人,有的时候问题的本质和你所遇到的问题一样,但是由于其他原因导致表面现象各不相同,因此不能死搬硬套,要经过分析和筛选,寻找问题的本质所在,才能更好利用好互联网这个资源。
dbName.TABLENAME(大写) 这种格式。
开始以为,是MySql的原因,因为据说在MySql5以后的版本中,数据库默认是不允许远端服务器访问的,于是用自己电脑上的MySql客户端去连接服务器,结果一切正常,又查看了一些权限的资料和查看数据库中的配置,况且数据库和应用程序在同一台机子上,那就排除了问题出在数据库权限上这个原因。
后来上网查了下,发现这个版本的MySql是区分大小写的,又查看了日志,发现日志中报错的表名果然是大写的,然后MySql客户端工具查看了下,显示数据库的表名都是小写。所以,怀疑是因为大小写的原因。于是开始分析程序执行的过程,由于ORM框架使用的是Hibernate,该框架会对表名进行封装,具体生成后的SQL语句是它根据配置文件来生成的,于是,我就查看了下Hibernate的配置文件,最后发现果然配置文件中的表名是大写的。
但是当前遇到了问题是,配置在Hibernate中的持久化PO非常多,如果要一个个地改太麻烦,于是想,能不能让MySql数据库忽略大小写,于是又查了相关的资料。原来在Linux上安装MySql时,默认是不忽略大小写的,但是可以通过修改配置文件可以让其忽略,网上说这个配置文件的全路径是/etc/my.cnf。大家知道,而查看后,发现当前系统下并没有这个文件,相关资料表明,这个文件默认的情况下并不存在,于是就想,是否可以自己配置下,于是,就从本地用记事本将:[mysqld]
lower_case_table_names=1这句代码保存起来,然后修改文件名为my.cnf之后用ftp上传到服务器上,重启MySql,运行程序,OK,问题解决。
总结:网上的很多人,有的时候问题的本质和你所遇到的问题一样,但是由于其他原因导致表面现象各不相同,因此不能死搬硬套,要经过分析和筛选,寻找问题的本质所在,才能更好利用好互联网这个资源。
相关文章推荐
- 连接oracle的web程序提示找不到表的异常
- QT连接mysql、oracle数据库可执行程序的移植性问题
- 【Mysql To EF】codefirst连接问题提供程序未返回 ProviderManifestToken 字符串
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
- mysql连接linux系统提示“登录出现1130 is not allowed to connect to this MySql server”问题,解决方法
- 运行部署在Weblogic上的Web应用时,过一段时间程序就提示数据连接断了,重起Weblogic就好了。过一段时间又出现同样的问题。
- 关于Java程序(WEB程序)数据提交到Mysql,Mysql数据出现乱码的问题
- 遇到问题--Nginx---tomcat启动web程序访问静态资源时404找不到
- 解决QT5.2及以上版本连接mysql提示QMYSQL driver not download 问题
- 一个Web报表项目的性能分析和优化实践(二):MySQL数据库连接不够用(TooManyConnections)问题的一次分析和解决案例
- 编译mysql c api 或者 mysql++ 程序成功,运行时却提示 程序不能启动,因为计算机找不到 dll(mysqlpp_d.dll/mysql.dll)
- mysql连接linux系统提示“登录出现1130 is not allowed to connect to this MySql server”问题的解决方法
- mysql连接linux系统提示“登录出现1130 is not allowed to connect to this MySql server”问题,解决方法
- 运行部署在Weblogic上的Web应用时,过一段时间程序就提示数据连接断了,重起Weblogic就好了。过一段时间又出现同样的问题。
- 数据库问题(程序连接mysql错误)
- Java程序连接数据库(mysql,sql server)以及出现的问题解决
- 遇到问题--Nginx---tomcat启动web程序访问静态资源时404找不到
- codesmith连接Mysql提示“找不到请求的 .Net Framework Data Provider。可能没有安装。"
- php连接mysql提示Call to undefined function mysql_connect() 或 ZenCart MySQL支持问题的解决
- mysql连接linux系统提示“登录出现1130 is not allowed to connect to this MySql server”问题,解决方法