-
centos7 系统安装部署应用
- 网站名称:centos7 系统安装部署应用
- 网站分类:技术文章
- 收录时间:2025-07-06 10:44
- 网站地址:
“centos7 系统安装部署应用” 网站介绍
最近公司有个项目需上线,记录下系统安装,应用部署过程。
1、安装系统centos7.9最小化安装
2、安装基本工具:
由于基本配置yum文件不能使用,我这边使用阿里云yum仓库进行替代
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all # 清理原有缓存
yum makecache # 生成阿里云源缓存
yum -y install wget epel-release rsync net-tools
安装mysql数据库,卸载一些不必要的软件:
yum -y remove postfix
rpm -e mariadb-libs-5.5.68-1.el7.x86_64
3、安装数据库mysql:
mkdir /data/mysql //数据盘,数据目录
useradd mysql
chown -R mysql:mysql /data/mysql
到官网下载这些数据库文件,将这些文件放在一个目录里:
mysql-community-common-8.0.33-1.el7.x86_64.rpm
mysql-community-server-8.0.33-1.el7.x86_64.rpm
mysql-community-client-8.0.33-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm
mysql-community-libs-8.0.33-1.el7.x86_64.rpm
安装,使用yum命令安装,如提示缺少相应的mysql相关rpm包会有提示:
yum -y install mysql-community-common-8.0.33-1.el7.x86_64.rpm mysql-community-server-8.0.33-1.el7.x8
6_64.rpm mysql-community-client-8.0.33-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm mysql-community-icu-d
ata-files-8.0.33-1.el7.x86_64.rpm mysql-community-libs-8.0.33-1.el7.x86_64.rpm
启动服务:
service mysqld start
查看日志文件可以查看初始密码:
/var/log/mysqld.log
SET PASSWORD = PASSWORD('YourNewPassword'); //首次登录需要修改密码
service mysqld stop //停止目录,将目录数据目录修改到数据盘,数据目录。
rsync -avH /var/lib/mysql/ /data/mysql //根据自己实际将数据目录存放数据盘
修改配置文件:
数据目录修改后,启动数据库。
创建应用库:
create database dbname; //创建应用库
CREATE USER 'user'@'%' IDENTIFIED BY 'passwd'; //创建用户
GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'%'; //关联用户和应用数据库
4、安装应用
应用是java语言开发的,先配置java环境 ,我这边配置的是java1.8的版本,可以将如下配置写入/etc/profile 末尾:
###for jdk1.8 ###
JAVA_HOME=/usr/local/jdk1.8.0_241
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME JRE_HOME CLASSPATH
export HISTTIMEFORMAT="%F %T `whoami` "
创建应用启动用户,目录:
useradd appadmin
mkdir /data/app
chown -R appadmin:appadmin /data/app
说明:生产环境建议用普通用户来运行单独的应用,规划单独的应用目录。
启动应用:
su - appadmin
cd /data/app
nohup java -jar fs-0.0.1-SNAPSHOT.jar >> app.log 2>&1 &
启动脚本:
#!/bin/bash
# 功能:安全启动Java应用,包含日志记录、进程管理和基础错误处理
# --------------------- 基础配置 ---------------------
APP_NAME="fs-0.0.1-SNAPSHOT.jar"
APP_PATH="/data/app"
LOG_FILE="$APP_PATH/app.log"
PID_FILE="$APP_PATH/app.pid"
MAX_RETRY=10 # 最大重试次数
RETRY_INTERVAL=3 # 重试间隔(秒)
# --------------------- 日志函数 ---------------------
log() {
local timestamp=$(date +"%Y-%m-%d %H:%M:%S")
local level=$1
local message=$2
echo "[$timestamp] [$level] $message"
echo "[$timestamp] [$level] $message" >> "$LOG_FILE"
}
# --------------------- 检查应用是否已启动 ---------------------
check_running() {
if [ -f "$PID_FILE" ]; then
local pid=$(cat "$PID_FILE")
if ps -p "$pid" > /dev/null 2>&1; then
log "ERROR" "应用已在运行,PID: $pid"
return 1
else
log "WARN" "发现残留PID文件,但进程不存在,将清理PID文件"
rm -f "$PID_FILE"
fi
fi
return 0
}
# --------------------- 等待数据库启动 ---------------------
wait_for_database() {
log "INFO" "开始检查数据库连接..."
local db_host="localhost" # 请根据实际修改
local db_port="3306" # 请根据实际修改
local attempt=0
while [ $attempt -lt $MAX_RETRY ]; do
if nc -z "$db_host" "$db_port"; then
log "INFO" "数据库连接成功"
return 0
fi
attempt=$((attempt + 1))
log "INFO" "数据库未就绪,第 $attempt 次尝试,等待 $RETRY_INTERVAL 秒..."
sleep $RETRY_INTERVAL
done
log "ERROR" "数据库连接超时,已重试 $MAX_RETRY 次"
return 1
}
# --------------------- 主启动逻辑 ---------------------
main() {
# 1. 初始化日志
log "INFO" "==================== 应用启动流程开始 ===================="
# 2. 检查应用是否已启动
check_running
if [ $? -ne 0 ]; then
log "ERROR" "应用启动失败:检测到重复启动"
exit 1
fi
# 3. 等待数据库就绪(可选,根据实际需求启用)
# wait_for_database
# if [ $? -ne 0 ]; then
# log "ERROR" "应用启动失败:数据库连接失败"
# exit 1
# fi
# 4. 记录启动时间
local start_time=$(date +"%Y-%m-%d %H:%M:%S")
log "INFO" "应用启动时间:$start_time"
# 5. 启动Java应用
log "INFO" "开始启动Java应用:java -jar $APP_NAME"
nohup java -jar "$APP_NAME" >> "$LOG_FILE" 2>&1 &
# 6. 记录PID
local new_pid=$!
echo "$new_pid" > "$PID_FILE"
log "INFO" "应用已启动,PID: $new_pid"
# 7. 验证启动状态
sleep 2
if ! ps -p "$new_pid" > /dev/null 2>&1; then
log "ERROR" "应用启动后异常退出,PID: $new_pid"
rm -f "$PID_FILE"
exit 1
fi
log "INFO" "==================== 应用启动流程完成 ===================="
exit 0
}
# 执行主函数
main
- 上一篇:深入jvm理解字符串常量池
- 下一篇:CentOS7安装Mongodb 4.x.x
更多相关网站
- CentOS7安装MySQL:使用RPM安装包方式(推荐)
- 非常详细的CentOS7安装Elasticsearch7.6
- CentOS7下yum方式安装MySQL5.7数据库
- Kali与编程:Centos7上搭建web服务器
- CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库
- CentOS 7从零开始:2、网络设置与安装
- centos7 停服后yum源无法使用的解决办法
- CentOS 7下安装Python 3.10的完整过程
- CentOS7下制作OpenSSH 8.4p1 RPM包
- CentOS7安装iTop
- DPDK-20.11.1版本在Centos8上安装和测试
- 如何在Linux系统上安装官方最新版QQ音乐
- CentOS 7 升级 GCC 版本
- centos7 进行系统升级和系统降级
- 如何在 Windows 系统电脑中安装 CentOS 7 虚拟机
- CentOS7.5系统更新yum源的详细过程
- docker 系列四、部署centos7操作系统
- hadoop3.2.4安装 sqoop1.4.7
- 最近发表
- 标签列表
-
- c++论坛 (14)
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 二调符号库 (23)
- acmecadconverter_8.52绿色版 (25)
- f12019破解 (16)
- 流星蝴蝶剑修改器 (18)
- np++ (17)
- 梦幻诛仙表情包 (36)
- 魔兽模型 (23)
- java面试宝典2019pdf (26)
- beamoff下载 (17)
- disk++ (30)
- vncviewer破解版 (20)
- word文档批量处理大师破解版 (19)
- pk10牛牛 (20)
- 加密与解密第四版pdf (29)
- pcm文件下载 (15)
- jemeter官网 (16)
- iteye (26)
- parsevideo (22)
- ckeditor4中文文档 (20)
- centos7.4下载 (32)