
🙉专栏推荐:Java入门知识🙉
🐹今日诗词:小舟从此逝,江海寄余生🐹
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏
在Ubuntu下搭建Java部署环境需要使用到apt命令
apt命令(用于安装、更新、删除、查询软件包)
语法:
apt [命令] [软件包名称]
接下来我们来搭建Java部署环境
使用apt安装JDK
更新软件包列表
我们先更新软件包列表
Ubuntu仓库的软件不一定和软件包官网的版本一样, 如果有需求可以自定义下载, 不使用配置仓库的软件包
安装openJDK
步骤:
- 查找jdk: 使用 apt list |grep "jdk"
- 安装jdk: 使用 sudo apt install openjdk-17-jdk
查找jdk
apt list |grep "jdk"
安装jdk
sudo apt install openjdk-17-jdk
使用apt安装MySQL
查找安装包
命令:
apt list | grep "mysql-server"
安装MySQL
命令:
sudo apt install mysql-server
输入命令, enter安装, 接下来会有选择让我们选择
查看MySQL状态
命令
sudo systemctl status mysql
MySQL安全设置
默认安装的MySQL设置是不安全的, 数据被盗了就老实了, 因此MySQL提供了一个安全脚本
命令:
sudo mysql_secure_installation
接下来也有许多选项, 除了第二个选项选择数字2, 其他都选择Y
选项1.
选项2.
剩下全选择: Y
设置密码
先连接MySQL服务器
命令:
sudo mysql
修改密码命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'
大小写都要有
退出数据库: 安装完毕, 退出数据库回到主机页面的命令是
exit
如何连接MySQL数据库?
连接数据库命令:
mysql -uroot -p
这个是隐式输入, 看不见输入的东西
然后把你的数据库代码导出来, 文件后缀是.sql, 最后放到服务器中
或者在服务器中执行sql语句也是可以的
执行sql文件的命令
source 文件名
部署Web项目到Linux
准备工作
我们需要把本地的项目上传到服务器上, 需要做点准备工作
1. 上传文件到服务器需要通过 rz 命令上传
但是ubuntu 没有内置上传命令(rz), 我们需要通过指令下面指定安装
apt-get install lrzsz
安装完之后, 我们可以把本地文件上传到服务器上, 也可以将服务器的文件下载到本地
经过以上的步骤, 我们服务器的项目环境就部署好了,
下面就可以把我们本地的项目上传到服务器上了,
上线之间需要进行小小的修改
修改程序的配置文件
Spring Boot 默认使用
application.yml
或application.properties
来加载全局配置。如果要为不同的环境创建配置文件,可以命名为以下格式:
application.yml
application-dev.yml
(开发环境)application-prod.yml
(生产环境)下面是原本的application.yml内容, 接下来复制两份分别到
application-dev.yml和application-prod.yml文件中
spring: application: name: books # ??????? datasource: url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=false username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver # ?? mybatis xml ??????? resources/mapper ?????? xml ?? mybatis: mapper-locations: classpath:mapper/**Mapper.xml configuration: map-underscore-to-camel-case: true #???????? log-impl: org.apache.ibatis.logging.stdout.StdOutImpl logging: file: name: spring-book.log
这两个文件设置好了, 就通过application.yml指定要激活的环境配置文件
application.yml文件代码如下:
spring: profiles: active: prod
使用Maven打包
使用Maven把项目打包成jar包的形式
点击package即可打包
它会依次执行clean->validate->compile->test->package
如果打包的过程中出错了, 大概率是test执行没通过, 像下面这样
解决办法
打包成功是这种情况
找到你打好的jar包, 然后上传到服务器上
ls查看是否上传成功
启动程序
通过指令启动我们的程序
启动程序分为前台启动和后台启动:
前台启动程序: 关闭连接就不能继续访问了
java -jar jar包名
nohup(后台持久化运行)
nohup: 用于在关闭终端时, 保持程序继续运行,
通过kill指令可以结束运行的进程
nohup java -jar 包名 &
开放端口号
开放端口号需要在你的服务器厂商那里开启, 下面以阿里云为例: 演示如何开放端口号
阿里云
观察日志(重要)
项目已经能够在线上运行了, 如果出现问题了,
学会观察日志也非常重要, 一般都是观察error日志和查看最后的日志
持续跟踪日志:
tail -f 日志文件名
持续跟踪错误日志
tail -f 日志文件名 | grep "ERROR"
日志重定向
指令:
nohup java -jar 执行文件 >重定向目录 &
Linux通过 > 进行重定向
日志重定向需要先关闭进程, 然后在启动的时候才能设置日志存储位置
杀死进程指令:
kill 进程号或进程名
如果不知道具体的进程名, 可以先模糊查询一下, 在通过进程号杀死进程
先查看正在运行的进程:
ps -ef|grep 进程名
找到进程的pid, 然后kill 进程号
常见问题
一个程序的正常运行,需要程序的正确和环境的正确.同样的代码在Windows上可以运行成功,不一定在Linux上运行成功,不同的系统对代码的理解和支持是不同的.
比如Windows系统对MySQL不区分大小写,Linux区分大小写服务不能正常访问的原因有很多,主要分以下几方面:
- 服务未启动
使用 ps -ef|grep java查看程序是否在运行
curl http://127.0.0.1:8080/你的网页名.html看下是否有返回html页面,
如果有返回,说明程序启动成功了,考虑端口未开放
如果未启动成功,需要查看对应的日志,根据原因来分析.- 数据库不存在
- 表不存在(区分大小写)
- 数据库密码不正确
- Jdk 安装版本不对,或者未安装
- mysql未设置密码
- http端口未开放: 检查云服务器防火墙/安全组是否开放相应端口(如8080)
美图分享
✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄
⭐️点赞收藏加关注,学习知识不迷路⭐️
🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
👍😏⛳️点赞☀️收藏⭐️关注😏👍
🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️🙆♂️