离线安装部署mysql、redis、minio、nginx、jar包启动
系统环境:
centos7.9
架构:X86
安装目录:/server
记录安装笔记 依赖项在线安装的
下载离线依赖
yum install -y nginx --downloadonly --downloaddir=/nginx
yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径
1.java环境变量
将jdk文件拷贝到/server目录中并解压:
配置环境变量:vim /etc/profile.d/java.sh
重新加载:
source /etc/profile
java -version
java.sh配置:
export JAVA_HOME=/server/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
2. MySQL8安装
- 解压:
$ tar -xvf mysql-8.0.32-el7-x86_64.tar
- 创建用户
useradd MySQL
- 授予MySQL目录的适当权限
sudo chown -R mysql:mysql /server/mysql-8.0.32-el7-x86_64
4.初始化在MySQL目录中执行安装命令:
–lower-case-table-names=1 区分大小写,默认是0,1是不区分,坑:如果没改需要重新初始化
sudo /server/mysql-8.0.32-el7-x86_64/bin/mysqld --initialize --user=mysql --lower-case-table-names=1 --basedir=/server/mysql-8.0.32-el7-x86_64 --datadir=/server/mysql-8.0.32-el7-x86_64/data
- 安装完成后,编辑MySQL配置文件:
$ sudo vi /etc/my.cnf
[mysqld]
#datadir=/var/lib/mysql
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
basedir = /server/mysql-8.0.32-el7-x86_64
datadir = /server/mysql-8.0.32-el7-x86_64/data
#default-storage-engine=INNODB
innodb_strict_mode=0
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
authentication_policy=mysql_native_password
# 允许最大连接数
max_connections=800
# # 允许连接失败的次数。
max_connect_errors=10
# # 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
- 创建MySQL服务配置文件
sudo vi /etc/systemd/system/mysql.service
添加以下内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
ExecStart=/server/mysql-8.0.32-el7-x86_64/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --console
ExecStop=/server/mysql-8.0.32-el7-x86_64/bin/mysqladmin -uroot shutdown
Restart=always
[Install]
WantedBy=multi-user.target
- 启动MySQL服务
$ sudo systemctl start mysql
开机启动
$ sudo systemctl enable mysql
依赖
$ sudo yum install libaio
$ sudo yum install numactl
$ sudo yum install libtirpc
$ sudo yum install perl
$ sudo yum install openssl
在mysql/bin目录下执行
./mysql -uroot -p
输入初始化时的密码;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234567890';
mysql> create user 'root'@'%' identified with mysql_native_password by '1234567890';
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
mysql> flush privileges;
3. redis安装
- 下载包解压,打开目录
$ make
$ sudo make install PREFIX=/server/redis-5.0.4
- 编辑启动配置
vim /etc/systemd/system/redis.service
[Unit]
Description=The redis-server Process Manager
After=syslog.target
After=network.target
[Service]
Type=forking
ExecStart=/server/redis-5.0.4/src/redis-server /server/redis-5.0.4/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=always
PrivateTmp=true
[Install]
WantedBy=multi-user. Target
- 启动
systemctl start redis
systemctl enable redis.service
4. minio安装
下载离线安装包:
点击下载
- 拷贝,解压 目录/server/minio
- 在minio目录下创建data、conf
mkdir data conf
3.配置文件
vim conf/minio.conf
#数据存放目录
MINIO_VOLUMES="/server/minio/data"
#端口号设置
MINIO_OPTS="--console-address :9000"
#用户名
MINIO_ROOT_USER="minioAdmin"
#密码
MINIO_ROOT_PASSWORD="minioAdmin"
- 可执行权限
chmod +x /server/minio/minio
- 配置启动文件
vim /etc/systemd/system/minio.service
[Unit]
Description=MinIO Server
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
EnvironmentFile=/server/minio/conf/minio.conf
ExecStart=/server/minio/minio server $MINIO_VOLUMES
WorkingDirectory=/server/minio
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
PrivateTmp=true
PrivateDevices=true
[Install]
WantedBy=default. Target
- 启动
sudo systemctl enable minio.service
sudo systemctl start minio.service
状态
systemctl status minio
5. Nginx安装
- 安装编译Nginx所需的依赖项
yum install gcc pcre-devel openssl-devel zlib-devel
下载离线依赖
yum install -y nginx --downloadonly --downloaddir=/nginx
yum install --downloadonly +软件名称 --downloaddir=指定rpm包存放路径
- 配置编译参数并进行编译和安装。执行以下命令
创建nginx目录,安装包目录和编译目录不能是同一个
./configure --prefix=/server/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
–prefix参数指定安装目录
- 创建Nginx服务的启动脚本。在/etc/systemd/system/目录中创建一个名为nginx.service的文件,并将以下内容添加到文件中
[Unit]
Description=Nginx Web Server
After=network.target
[Service]
Type=forking
ExecStart=/server/nginx/sbin/nginx
ExecReload=/server/nginx/sbin/nginx -s reload
ExecStop=/server/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 启动
systemctl enable nginx
systemctl start nginx
- nginx配置
server {
listen 80;
server_name sj.xxxxx.com;
location / {
root /usr/share/nginx/html/h5;
index index.html index.htm;
}
location ^~/api {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
rewrite ^/api/(.*)$ /$1 break;
}
}
6. jar包启动
创建run.sh文件
touch run.sh
chmod +x run.sh
vim run.sh
#!/bin/bash
#这里可替换为jar包名字
APP_NAME=blade-api.jar
#根据实际情况修改参数
#JVM="-server -Xms2g -Xmx2g -Xmn512m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=25zh6m -Xss256k -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -Xloggc:/logs/xxx-server/GC/xxx-gc.log"
#APPFILE_PATH="-Dspring.config.location=/usr/local/config/application.properties"
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status|log|backup]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
else
#nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1
#后台启动jar包,且控制环境变量,根据实际情况修改吧。
#nohup java $JVM -jar $APP_NAME --spring.profiles.active=prod > /dev/null 2>&1 &
nohup java -Dfile.encoding=utf-8 -jar $APP_NAME --spring.cloud.nacos.discovery.ip=192.168.0.183 >> ./logs/api-$(date +%Y-%m-%d).log 2>&1 &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#日志
log(){
# 输出实时日志
tail -n 100 -f /logs/api-$(date +%Y-%m-%d).log
}
#备份
backup(){
#根据需求自定义备份文件路径。
BACKUP_PATH=/root/bak/
#获取当前时间作为备份文件名
BACKUP_DATE=`date +"%Y%m%d(%H:%M:%S)"`
echo 'backup file ->'$BACKUP_PATH$BACKUP_DATE'.jar'
#备份当前jar包
cp -r /root/bak/$APP_NAME $BACKUP_PATH$BACKUP_DATE'.jar'
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
"log")
log
;;
"backup")
backup
;;
*)
usage
;;
esac
启 动
sh run.sh start
sh run.sh stop