我把以前部署在windows服务器上的Java应用,迁移到linux上,会不会有影响?
java跨平台的,通过jvm实现解耦一般不会有影响; 但是如果本身有一些涉及jvm的设置等,还是需要验证一下,建议多做回归测试
一、运行环境的配置
◆ JDK的配置
如果只有当前用户使用JDK,
JAVA_HOME=/opt/jdk1.6.0_20
CLASSPATH=.JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/binPATH
export JAVA_HOME CLASSPATH PATH
保存退出。
要使JDK在所有的用户中使用,可以这样:
vi /etc/profile.d/java.sh
在新的java.sh中输入以下内容:
JAVA_HOME=/opt/jdk1.6.0_20
CLASSPATH=.JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/binPATH
export JAVA_HOME CLASSPATH PATH
保存退出,然后给java.sh分配权限:#chmod 755 /etc/profile.d/java.sh
检查JDK是否安装成功。
如果看到JVM版本及相关信息,即安装成功!
◆ TOMCAT的配置
为了方便,将生成的文件修改为tomcat-5.5.29
在文件末尾加入
#set tomcat environment
export JAVA_HOME=/opt/jdk1.6.0_20
export CLASSPATH=$JAVA_HOME/lib/dt.jarJAVA_HOME/lib/tools.jar:.
export CATALINA_HOME=/opt/ tomcat-5.5.29
export PATH=$JAVA_HOME/binPATH
使用命令#source /etc/profile 让修改后的文件立即生效。
启动tomcat服务 #./startup.sh
打开浏览器 http://localhost:8080,看是否安装成功。
关闭tomcat服务 #./shutdwon.sh
◆ Mysql据库.sql文件导入导出
1. sql文件导出:
先用cmd到mysql的bin目录下:
如:
1) E:\program files\MySQL\MySQL Server 5.0\bin>下
2) E:\program files\MySQL\MySQL Server 5.0\bin>mysqldump -u root -p userurl>links.sql
3) Enter password:123456
4) 会自动在E:\program files\MySQL\MySQL Server 5.0\bin>---------目录下生成links.sql文件
sql文件导入:
C:\mysql\bin>mysql -u 用户名 -p 数据库名 < c:/test.sql (source " c:\adsense.sql" )
中间的空格是一个空格位。
例如:
var\lib\mysql>mysql -u root -p info < c:/myro.sql
Enter password: ****
稍等一会,就可以导入数据表。
二、操作中遇到的问题
◆ 数据库方面
在将.sql文件执行导入到info数据库的时候可能会报出如下错误:
ERROR 1045 (28000):Access denied for user 'root'@'localhost' (using password:YES)
解决办法:
# service mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('123') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# service mysqld start
# mysql -uroot -p
Enter password: <输入新设的密码123>
mysql>
② 在将.sql文件导入到info数据库时可能会报如下错误:
ERROR 1005 (HY000) at line 25: Can't create table './info/category.frm' (errno: 121) 此错误的原因是自己以前测试时建过info数据库,当时删除时是通过手动直接删除/var/lib/mysql中info数据库。这样做以为是没多大问题,实际上没有删除完全。
解决办法:
再次创建一个info数据库,然后通过命令行执行删除drop database info;
③ 登陆mysql数据库时可能会报如下错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决办法:
启动mysql的守护进程,执行service mysqld start就行了
④ mysql数据库表名大小写敏感问题:
解决办法:
用root登录,修改/etc/my.cnf
解决办法:
ⅰ、 MYSQL创建数据库时候直接指定编码和排序规则:
UTF8:create database `info`default character set utf8 collate utf8_general_ci;
ⅱ、 改变系统默认字符集,改变如下:
etc/my.cnf中[mysqld]字段后加入如下语句default-character-set=gb2312
◆ tomcat方面
① tomcat的server.xml配置问题:
当appBase指向info项目时tomcat无法正常启动。
解决办法:
将sever.xml中的配置修改如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/opt/tomcat-5.5.29/project/info" debug="0" reloadable="true" ></Context>
.......
② Tomcat中连接池的配置问题:
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource auth="Container" name="jdbc/DBD"
type="javax.sql.DataSource" password=""
driverClassName="org.gjt.mm.mysql.Driver" maxIdle="2" maxWait="5000"
username="root url="jdbc:mysql://localhost:3306/info?useUnicode=true&characterSetResults=UTF-8"
maxActive="8" removeAbandoned="true" removeAbandonedTimeout="10"
logAbandoned="true" />
三、环境配置存放目录明细
① jdk : 放在/opt/jdk1.6.0_20目录下
② tomcat:放在/opt/tomcat-5.5.29目录下
③ mysql: /var/lib/mysql -- 数据库目录
/usr/bin/mysql -- mysqladmin mysqldump等命令
/etc/rc.d/init.d -- 启动脚本文件mysql的目录
/usr/share/mysql -- mysql.server命令及配置文件
四、启动、关闭服务的命令
① 启动mysql服务: service mysqld start
关闭mysql服务: service mysqld stop
② 启动tomcat服务:先进入/opt/tomcat-5.5.29/bin 执行 ./startup.sh
关闭tomcat服务:先进入/opt/tomcat-5.5.29/bin 执行 ./shutdown.sh
数据库的话是连接的rds的话没啥影响,java是跨平台的语言,去那个平台都是依靠他的jvm,不过做这种迁移,还是要先备份数据,该有的流程要有。
如果数据库需要迁移可以参考:
https://yq.aliyun.com/articles/66164?spm=5176.10695662.1996646101.searchclickresult.3faf32acyMABki
Java是跨平台的。不会有什么大的影响。但注意多测试,特别是涉及文件操作的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。