Java Web项目从Windows移植到Linux注意事项

我将自己做的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的设置就行了。


    具体操作:
        在MySQL的配置文件my.ini中增加一行:
        lower_case_table_names = 0
        其中 0:区分大小写,1:不区分大小写
   注意:在修改完my.ini配置文件之后,需要重启mysql服务才能生效。 (计算器->管理->服务和应用程序)

    MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
      1、数据库名与表名是严格区分大小写的;
      2、表的别名是严格区分大小写的;
      3、列名与列的别名在所有的情况下均是忽略大小写的;
      4、变量名也是严格区分大小写的;MySQL在Windows下都不区分大小写

解决方法 No.2(我采取了此方法)

http://www.oschina.net/question/917282_88223

原来在Windows下,每个JavaBean只写@Entity就可以,会默认对应同名的表(不分大小写)。

@Entity


但是在Linux下,区分大小写,必须改为

@Entity

@table(name=”person“)

以明确注明对应的表名为:name=”person“,由于Linux区分大小写。

你可能感兴趣的:(Linux之路)