描述:在Centos6.8上部署一个Springboot项目。
文章目录
第一步:打包
POM文件里:
<packaging>jar</packaging> //达成jar包
<artifactId>qydm-admin</artifactId> //jar包名称
maven插件:(这个可以上网查一个)
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
执行Maven install打包,此处报了个如下错误:
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
…
…
http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
解决方法:这个主要是由于JDK的版本问题,需要将JRE换成JDK版本。
1.window---->preferences---->Java---->Installed JREs
2.找到JDK的安装路径
3.选择JDK---->apply
4.再次进行maven clean,maven install,如果该问题仍然存在,进行下一步操作
打包好的jar包在项目的target目录下。
第二步:将jar包上传至服务器,我用的是Filezilla这个工具。
第三步: 运行jar包
我这里是写了个.sh脚本,脚本内容为:
nohup java -jar qydm-admin.jar > /usr/local/system.log 2>&1 &
补充:
'>xxx’是标准输出(stdout)符号,是‘1>xxx’的缩写
2>xxx是标准错误输出(stderr)
0< 是标准输入符号
2>&1 的意思就是:把标准错误输出(2)的信息重定向到标准输出(1)中,然后输出到/usr/local/system.out文件中
这里分享两篇文章,写的很详细。
Aggavara同学 和 过期罐头同学
第四步:排错
启动jar包过程中遇到几个问题,依次记录。
实时查看system.log文件的命令:
tail -f system.log //根据文件描述符进行追踪,当文件改名或被删除,追踪停止
补充:
tail -F xxx
表示根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
4.1 …CannotjdbcConnectionException…连接拒绝…
sh执行脚本文件后,查看system.log,报以下错误:
…CannotjdbcConnectionException…连接拒绝…
这个错误是连接不上数据库
4.2 Can’t connect to local MySQL server through socket ‘/tmp/mysqld.sock’
然后想登陆数据库看一下,发现登陆不上数据库,报以下错误:
Can’t connect to local MySQL server through socket ‘/tmp/mysqld.sock’
这个问题是因为忘记启动mysql服务了,执行以下命令即可:
service mysqld start
这里记录一个小知识点:可以使用find / -name 文件名
来查找文件位置
4.3 Access defined for user ‘root@localhost’…
启动mysql服务之后,再次执行脚本启动jar包,又发现新的错误:
Access defined for user ‘root@localhost’…
是因为项目中的application.yum文件设置的用户名密码为root,和Linux上的mysql密码不一致,果断修改Linux上的mysql密码:
不登录mysql,修改mysql密码:
mysqladmin -u root -p123456 password root
在数据库外面进行更改,更改的用户root,-p为旧密码,后面的password为新密码
补充:三种修改mysql数据库密码方式:飞机飞过天空之城
4.4 Table 'qydm.QRTZ…'不存在…
再次重启jar包,这次可以连接上数据库了,但是又出现了新的错误:
Table 'qydm.QRTZ…'不存在…
但是数据库中是有这个表格的,查阅资料发现Linux上的mysql默认表名是区分大小写的,可以使用show Variables like '%table_names%'命令查看,0表示区分大小写,1表示不区分大小写
修改一下vim /etc/my.cnf文件,在mysqld下面加一行:
lower_case_table_names=1
重启服务即可:service mysqld restart
可以参考 态度071的文章
至此:服务器项目部署完成,在浏览器输入192.168.xx.xx:8080即可。
最后再补充点命令记一下:
清空文件: cat /dev/null > filename
查找文件:find / -name XXX
查看某一个进程:ps -ef | grep XXX
查找某一个程序:whereis xxxx
最后贴一张图吧…
…
…
算了,有点保密,有点怂,小伙伴们凑合看嘿嘿