我将自己做的Java Web项目(CrawlerManage爬虫管理系统)从windows移植到Linux上,遇到不少问题。
1、将数据库连接配置文件(jdbc.propertites)做相应修改,
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_crawlerManage?useUnicode=true&characterEncoding=utf8(Linux服务器上的IP和对应的Database)
jdbc.username=jzus(Linux服务器上的数据库用户名)
jdbc.password=mzxwswws(Linux服务器上的数据库密码)
2、将我的Java Web 工程导出为 .war文件(CrawlerManage.war)。
3、将CrawlerManage.war上传到Linux服务的 root@beyond:/opt/apache-tomcat-7.0.52/webapps 目录下,即部署。
具体操作,先进到/apache-tomcat-7.0.52/webapps 目录下,然后输入rz命令,即可选择从windows上传文件到Linux制定目录下。
4、进入/apache-tomcat-7.0.52/bin目录下,然后停启Tomcat,即./shutdown.sh 和 ./startup.sh。
按道理,这样应该就没问题了!!!
浏览器输入登录界面的网址:
http://10.82.81.189:8000/CrawlerManage/Admin_Public_login.action
但是,出现
org.hibernate.exception .SQLGrammarException: could not execute query
..........................................一大推错误
..........................................一大推错误
原因:MySQL 在windows下不区分大小写,但是Linux下区分大小写(包括表名、字段等)
解决方法 No.1(我没采取这种方法,但应该可行。由于我的服务器里面Mysql的配置文件有些乱,有些问题,不是俺装的Mysql,我不采取此方法)
========人家的博客========
http://blog.sina.com.cn/s/blog_6826662b010186ks.html
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再想要将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows 下大小写敏感呢。其实方法是一样的,相应的更改windows中MySQL的设置就行了。
解决方法 No.2(我采取了此方法)
http://www.oschina.net/question/917282_88223
原来在Windows下,每个JavaBean只写@Entity就可以,会默认对应同名的表(不分大小写)。
@Entity
但是在Linux下,区分大小写,必须改为
@Entity
@table(name=”person“)
以明确注明对应的表名为:name=”person“,由于Linux区分大小写。