一、说明
- 前端技术体系:Vue3 + Nuxt3 + Vite5 + Vue-Router + Element-Plus + Pinia + Axios
- 后端技术体系:Spring Cloud Alibaba2021 + MySQL8 + Nacos + Seata + Mybatis + Druid + redis
- 后端系统:roncoo-education(核心框架:Spring Cloud Alibaba):码云 | Github
- 门户系统:roncoo-education-web(核心框架:Nuxt3):码云 | Github
- 管理系统:roncoo-education-admin(核心框架:Vue3):码云 | Github
- 部署系统centos 7(改为ubuntu---推荐替代centos7方案)
- 在线教育网站项目第二步 :学习roncoo-education,服务器为ubuntu22.04.05-CSDN博客
https://blog.csdn.net/jiangkp/article/details/145995259
二、 配置环境
1、安装centos 7
centos 7太老了,连个nodejs装起来都麻烦死了,准备换别的系统--改为ubuntu
见新帖子
2、初始化系统
# 查看
uname -a // 查看操作系统# 系统更新
yum update -y#出现错误
Cannot find a valid baseurl for repo: base/7/x86_64
# 下面是解决问题,来源于deepseek
# 查看仓库配置文件
cat /etc/yum.repos.d/CentOS-Base.repo# 确保 `baseurl` 或 `mirrorlist` 有效(示例如阿里云镜像)
sudo vi /etc/yum.repos.d/CentOS-Base.repo# 所有内容替换为
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7# 禁用
fastestmirror
插件,该插件可能导致镜像选择失败# 临时禁用插件
sudo yum clean all --disableplugin=fastestmirror# 永久禁用(编辑配置文件)
sudo vi /etc/yum/pluginconf.d/fastestmirror.conf将
enabled=1
改为enabled=0
# 清理旧缓存
sudo yum clean all
#生成新缓存
sudo yum makecache
sudo yum update# 关闭SELINUX
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config# 调大服务器所支持的最大文件句柄数(云服务器一般已经默认已经设置)
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nofile 65536" >> /etc/security/limits.conf# 配置
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p# 安装基础工具
yum install -y lrzsz unzip git wget
3、新增用户并初始化
# 新增一个普通用户,系统应用都由这个普通用户来运行
useradd education
passwd education输入密码 123456
# 用户密码自行管理# 设置sudo权限
sed -i '/OPASSWD: ALL/a\education ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
三、MySQL-8.0的安装
1、安装
# mysql8.0
yum install -y https://repo.mysql.com/mysql80-community-release-el7.rpm
# 禁用默认的 MariaDB 模块(避免冲突,可能没安装mariadb)
which mariadb 看是否安装
systemctl disable mariadb
# 安装mysql
yum install -y mysql-community-server#安装完成之后,默认已设置开机启动。
5、关键配置优化(编辑 /etc/my.cnf
)
cat >> /etc/my.cnf << 'EOF'
# 默认时区
default-time_zone='+8:00'
# 性能优化(若有单独是数据库服务器,推荐innodb_buffer_pool_size设置为系统内存的60%到80%)
innodb_buffer_pool_size=4G
innodb_log_file_size=256M
max_allowed_packet=64M
# 关闭log-bin(8.0默认是开启的)
disable-log-bin
# 设置身份认证插件(兼容低版本的认证方式)
default_authentication_plugin=mysql_native_password
# 最大连接数
max_connections=10240
# 需要启用only_full_group_by SQL模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
EOF
2、启动服务并设置开机自启
# 启动服务并设置开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld
3、初始化与启动
# 启动
systemctl restart mysqld# 查看初始化密码
cat /var/log/mysqld.log | grep passwordxs_UCrpZu5Tj
# 初始化,按需进行确认即可(注意密码的强度,不满足无法设置密码)
mysql_secure_installation# 登录设置授权(这里新增用户:roncoo,密码为:RonCoo.123)
mysql -uroot -p
> create user roncoo@'%' identified by 'RonCoo.123';
> GRANT ALL PRIVILEGES ON *.* TO 'roncoo'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
> exit;
# 启动
systemctl start mysqld
# 关闭
systemctl stop mysqld
# 重启
systemctl restart mysqld配置文件位置:/etc/my.cnf
软件安装位置:/var/lib/mysql
应用日志位置:/var/log/mysqld.log
4、配置外网连接
# 查看当前开放的端口
firewall-cmd --list-ports
# 开放或关闭特定端口(例如开放端口 3306):
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reloadfirewall-cmd --zone=public --remove-port=3306/tcp --permanent
firewall-cmd --reload# 错误Public Key Retrieval is not allowed
dbeaver连接时解决方案
编辑连接-编辑驱动属性-allowPublicKeyRetrieval设置为true
5、创建几个数据库 (使用DBeaver)
education_course
education_system
education_user
education_nacos
education_job
6、导入数据
四、Redis-6.2.9的安装
1、安装redis
yum install -y gcc tcl
mdkir /opt/tools
cd /opt/tools
wget https://download.redis.io/releases/redis-6.2.9.tar.gz
tar zxvf redis-6.2.9.tar.gz && cd redis-6.2.9
make install PREFIX=/opt/redis# 添加配置文件
cp -r /opt/tools/redis-6.2.9/redis.conf /opt/redis/redis.conf# 创建redis内部用户
useradd redis -s /sbin/nologin -M
chown -R redis:redis /opt/redischown redis:redis /var/run/redis-6379.pid
2、配置redis
# 设置允许外网访问
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /opt/redis/redis.conf# 设置密码(安全考虑,建议必须设置密码)
sed -i 's/# requirepass foobared/requirepass RonCoo.123/' /opt/redis/redis.conf# 设置用守护线程的方式启动
sed -i 's/daemonize no/daemonize yes/' /opt/redis/redis.conf
sed -i 's/top-writes-on-bgsave-error yes/top-writes-on-bgsave-error no/' /opt/redis/redis.conf
3、配置开机自启动
cat >> /usr/lib/systemd/system/redis.service << 'EOF'
[Unit]
Description=Redis
After=network.target[Service]
Type=forking
User=redis
LimitNOFILE=65536
LimitNPROC=65536# config中已经配置
# PIDFILE=/var/run/redis-6379.pid
ExecStart=/opt/redis/bin/redis-server /opt/redis/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
# 设置开机启动
systemctl enable redis# 启动
systemctl start redis# 关闭
systemctl stop redis
# 重启
systemctl restart redis
#状态
systemctl status redis
配置文件:/opt/redis/redis.conf
4、测试
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
redis-server -v
Redis Insight连接或redis-cli
[root@localhost roncoo-education]# /opt/redis/bin/redis-cli -a
Unrecognized option or bad number of args for: '-a'
[root@localhost roncoo-education]# /opt/redis/bin/redis-cli -a RonCoo.123
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> get n
(nil)
127.0.0.1:6379> set n 0
OK
127.0.0.1:6379> get n
"0"
127.0.0.1:6379>
五、JDK-1.8.0的安装
1、卸载java(没有不用管)
sudo yum update -y
#Linux删除自带的JDK
1、先查看Linux自带的JDK有几个
rpm -qa | grep -i java
2、去删除JDK
[root@localhost ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
rpm: no packages given for erase3 、编辑profile文件,去除环境变量配置
# export JAVA_HOME=/opt/java
# export JRE_HOME=${JAVA_HOME}/jre
# export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
# export PATH=${JAVA_HOME}/bin:$PATHsource /etc/profile
4、查看java
[root@localhost ~]# rpm -qa | grep -i java
[root@localhost ~]# java -version
-bash: java: command not found
2、安装jdk
yum search java|grep jdk
yum install -y java-1.8.0-openjdk*
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
3、配置环境变量
#查看java安装路径
[root@localhost ~]# which java
/usr/bin/java
[root@localhost ~]# ls -lr /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar 2 13:36 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ls -lr /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Mar 2 13:36 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java
[root@localhost ~]# ^C
[root@localhost ~]# ls -lr /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java
-rwxr-xr-x 1 root root 8984 Apr 17 2024 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre/bin/java
配置配置JAVA_HOME
vi /etc/profile
在文件的最后加上下面内容,保存退出
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH[root@localhost ~]# source /etc/profile
[root@localhost ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64
六、Maven-3.9.5的安装(服务器端可以安装)
1、下载安装
cd /opt/tools
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.5/binaries/apache-maven-3.9.5-bin.tar.gz
# 不能下载就在windows 下下载后上传,我就不能下载
tar -zxvf apache-maven-3.9.5-bin.tar.gz
mv apache-maven-3.9.5 /opt/maven
chown -R education:education /opt/maven
2、配置
cat >> /etc/profile << 'EOF'
# maven
export MAVEN_HOME=/opt/maven
export PATH=${MAVEN_HOME}/bin:${PATH}
EOF
# 使配置立即生效
source /etc/profile# 验证版本信息[root@localhost tools]# mvn -v
Apache Maven 3.9.5 (57804ffe001d7215b5e7bcb531cf83df38f93546)
Maven home: /opt/maven
Java version: 1.8.0_251, vendor: Oracle Corporation, runtime: /opt/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.119.1.el7.x86_64", arch: "amd64", family: "unix"
# 删除再重新添加
rm -f /opt/maven/conf/settings.xml
# 阿里云
cat >> /opt/maven/conf/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>aliyun</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
# 华为云(若使用华为云服务器建议使用)
cat >> /opt/maven/conf/settings.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
</mirrors>
</settings>
EOF
七、安装tomcat
1、下载安装
cd /opt/tools
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz
tar -xvf apache-tomcat-8.5.41.tar.gz
mv /opt/tools/apache-tomcat-8.5.41 /opt/tomcat
2、运行测试
# 运行tomcat
sh /opt/tomcat/bin/startup.sh
# 开放端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload# 在浏览器中输入URL:http://192.168.1.14:8080并单击回车
3、配置自启动
cp /opt/tomcat/bin/catalina.sh /etc/init.d/tomcat8
chmod 755 /etc/init.d/tomcat8
vim /etc/init.d/tomcat8
在文件第一行下面添加
#chkconfig: 2345 10 90
#description: tomcat8 service
export CATALINA_HOME=/opt/tomcat
#添加服务
chkconfig --add tomcat8
#测试
service tomcat8 start
service tomcat8 stop
stop
start后可以访问
八、Nodejs-v16.20.2的安装
1、安装
cd /opt/tools
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.gz
tar zxvf node-v16.20.2-linux-x64.tar.gz
mv /opt/tools/node-v16.20.2-linux-x64 /opt/node
chown -R education:education /opt/node
2、配置
cat >> /etc/profile << 'EOF'
# node
export NODE_HOME=/opt/node
export PATH=${NODE_HOME}/bin:${PATH}
EOF
# 使配置立即生效
source /etc/profile# 验证版本信息
node -v
# 设置软连接
ln -s /opt/node/bin/node /usr/local/bin/
ln -s /opt/node/bin/npm /usr/local/bin/# 安装pm2
npm install pm2 -g
ln -s /opt/node/bin/pm2 /usr/local/bin/# 安装yarn
npm install yarn -g
ln -s /opt/node/bin/yarn /usr/local/bin/# 配置为淘宝源
npm config set registry https://registry.npmmirror.com/
npm config get registrynpm install -g cnpm
ln -s /opt/node/lib/node_modules/cnpm/bin/cnpm /usr/local/bin/cnpm
3、测试
cd /opt/tools
touch example.js
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Welcome to Node.js\n'); });
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
}
);
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
[root@localhost tools]# node example.js &
[1] 10733
[root@localhost tools]# Server running at http://0.0.0.0:3000/
九、Elasticsearch-7.15.2的安装
1、安装
cd /opt/tools
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.15.2-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.15.2-linux-x86_64.tar.gz
mv /opt/tools/elasticsearch-7.15.2 /opt/elasticsearch
useradd elastic -s /sbin/nologin -M
chown -R elastic:elastic /opt/elasticsearch
2、配置
# 配置
sed -i 's/#node.name: node-1/node.name: node-1/' /opt/elasticsearch/config/elasticsearch.yml
sed -i 's/#network.host: 192.168.0.1/network.host: 0.0.0.0/' /opt/elasticsearch/config/elasticsearch.yml
echo 'cluster.initial_master_nodes: ["node-1"]' >> /opt/elasticsearch/config/elasticsearch.yml
echo 'xpack.security.enabled: false' >> /opt/elasticsearch/config/elasticsearch.ymlcat >> /etc/profile << 'EOF'
# ES_JAVA_HOME
export ES_JAVA_HOME=/opt/elasticsearch/jdk
EOF# 使配置立即生效
source /etc/profile
vim /opt/elasticsearch/bin/elasticsearch
# 调整 JVM 内存大小
ES_JAVA_OPTS="-Xms512m -Xmx512m"
3、配置开机自启动
cat >> /usr/lib/systemd/system/elasticsearch.service << 'EOF'
[Unit]
Description=Elasticsearch[Service]
User=elastic
LimitNOFILE=65536
LimitNPROC=65536
ExecStart=/opt/elasticsearch/bin/elasticsearch[Install]
WantedBy=multi-user.target
EOF
# 设置开机启动
systemctl enable elasticsearch# 启动
systemctl start elasticsearch
# 关闭
systemctl stop elasticsearch
# 重启
systemctl restart elasticsearch# 检测
curl http://localhost:9200
4、测试
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --reloadhttp://192.168.1.14:9200
十、xxl-job-admin安装,版本:2.3.1
十、运行spring cloud后端
十、Tengine-3.0.0的安装
1、安装
# 安装依赖
yum install -y gcc gcc-c++ autoconf automake make pcre-devel openssl openssl-devel# 进入安装
cd /opt/tools
wget http://tengine.taobao.org/download/tengine-3.0.0.tar.gz
tar -zxvf tengine-3.0.0.tar.gz
cd tengine-3.0.0 && ./configure --prefix=/opt/nginx
make && make install# 存放独立域名配置(教培版)
mkdir /opt/nginx/conf/education.d
chown -R education:education /opt/nginx/conf/education.d
# 存放独立域名配置(企培版)
mkdir /opt/nginx/conf/enterprise.d
chown -R education:education /opt/nginx/conf/enterprise.d
2、启动
cat >> /usr/lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=Nginx
After=network.target[Service]
Type=forking
LimitNOFILE=65536
LimitNPROC=65536
ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf -p /opt/nginx
ExecReload=/opt/nginx/sbin/nginx -s reload -c /opt/nginx/conf/nginx.conf -p /opt/nginx
ExecStop=/opt/nginx/sbin/nginx -s quit -c /opt/nginx/conf/nginx.conf -p /opt/nginx
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
开机启动
# 设置开机启动
systemctl enable nginx# 启动
systemctl start nginx报错:nginx: [emerg] invalid IPv6 address in resolver "[fe80::7a71:4ff:fe18:5008%enp0s25]
1、vi /etc/sysconfig/network-script/ifcfg-ens33 (有一部分人的网卡配置不是这个文件,可以先通过ip addr查看下网卡名称)
2、将文件中“IPV6INIT=no”“IPV6_AUTOCONF=no”修改后保存退出。
3、重启网络服务。service network restart
4、启动Nginx。大功告成!
3、配置nginx.conf
# 删除
rm -f /opt/nginx/conf/nginx.conf# 新建
cat >> /opt/nginx/conf/nginx.conf << 'EOF'user root;
worker_processes auto;events {
worker_connections 1024;
accept_mutex on;
multi_accept on;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;keepalive_timeout 600s;
client_max_body_size 1024m;sendfile on;
gzip on;
gzip_min_length 1024;
gzip_comp_level 2;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_types text/plain application/javascript text/javascript application/x-javascript text/css;upstream eduweb {
server 127.0.0.1:3000;
}
upstream edugateway {
server 127.0.0.1:8180;
}include conf.d/*.conf;
}
EOF
4. 应用配置conf.d
# 创建
mkdir /opt/nginx/conf/conf.d# 新建
cat >> /opt/nginx/conf/conf.d/www.conf << 'EOF'server {
listen 80;
server_name localhost;
#listen 443 ssl;
#ssl_certificate xxx.pem;
#ssl_certificate_key xxx.key;
#ssl_session_timeout 5m;
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_prefer_server_ciphers on;# nacos
location /nacos {
proxy_pass http://127.0.0.1:8848;
}
# gateway
location /gateway/ {
proxy_pass http://edugateway/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# admin
location /admin {
root html;
try_files $uri $uri/ /admin/index.html;
index index.html;
}
# web
location / {
proxy_pass http://eduweb;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
EOF
# 配置完成,要重启nginx才能生效。
systemctl restart nginx
5、启动配置说明
# 启动
systemctl start nginx
# 查看
systemctl stop nginx
# 重启
systemctl restart nginx
十二、Nacos-2.2.3的安装
1、下载安装
cd /opt/tools
wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
tar zxvf nacos-server-2.2.3.tar.gz
mv nacos /opt/nacos
chown -R education:education /opt/nacos# 设置权限,避免导入配置没权限
mkdir -p /work/Tomcat/localhost/nacos
chown -R education:education /work
2、配置测试
sed -i 's/server.tomcat.accesslog.enabled=true/server.tomcat.accesslog.enabled=false/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.enabled=false/nacos.core.auth.enabled=true/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.key=/nacos.core.auth.server.identity.key=roncoo/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.server.identity.value=/nacos.core.auth.server.identity.value=roncoo/' /opt/nacos/conf/application.properties
sed -i 's/nacos.core.auth.plugin.nacos.token.secret.key=/nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789/' /opt/nacos/conf/application.properties
echo "spring.datasource.platform=mysql" >> /opt/nacos/conf/application.properties
echo "db.num=1" >> /opt/nacos/conf/application.properties
echo "db.url.0=jdbc:mysql://127.0.0.1:3306/education_nacos?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&autoReconnect=true" >> /opt/nacos/conf/application.properties
echo "db.user.0=roncoo" >> /opt/nacos/conf/application.properties
echo "db.password.0=RonCoo.123" >> /opt/nacos/conf/application.properties# 配置完成后,需要把SQL脚本导入数据库,SQL脚本位置:nacos/conf/mysql-schema.sql
3、启动
cat >> /usr/lib/systemd/system/nacos.service << 'EOF'
[Unit]
Description=Nacos
After=network.target[Service]
User=roncoo
Type=forking
ExecStart=/opt/nacos/bin/startup.sh -m standalone
ExecStop=/opt/nacos/bin/shutdown.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
# 注:-m standalone,表示单机模式启动,默认是集群模式启动# 设置开机启动
systemctl enable nacos# 启动
systemctl start nacos
# 启动
systemctl start nacos
# 关闭
systemctl stop nacos
# 重启
systemctl restart nacos# 访问地址:http://localhost:8848/nacos/,初始化的账号密码:nacos/nacos
# 登录控制台,可以直接导入提供的 nacos_config.zip,进行配置初始化,里面的配置按需修改
# 特别注意:修改nacos的密码,建议不要包含有@!等,否则在配置里面需要进行转义
# 特别说明:系统使用的是命名空间ID,不是命名空间名称,这里建议ID和名称设置为一致。放开端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --reload
4、问题
[root@localhost ~]# systemctl status nacos.service
● nacos.service - Nacos
Loaded: loaded (/usr/lib/systemd/system/nacos.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2025-03-02 09:39:13 CST; 9s ago
Process: 6424 ExecStart=/opt/nacos/bin/startup.sh -m standalone (code=exited, status=1/FAILURE)Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/...bin)
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: readlink: missing operand
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: Try 'readlink --help' for more information.
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: dirname: missing operand
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: Try 'dirname --help' for more information.
Mar 02 09:39:13 localhost.localdomain startup.sh[6424]: ERROR: Please set the JAVA_HOME variable in your environ...! !!
Mar 02 09:39:13 localhost.localdomain systemd[1]: nacos.service: control process exited, code=exited status=1
Mar 02 09:39:13 localhost.localdomain systemd[1]: Failed to start Nacos.
Mar 02 09:39:13 localhost.localdomain systemd[1]: Unit nacos.service entered failed state.
解决办法:
[root@localhost ~]# which java //找到jdk位置
/usr/bin/java
[root@localhost ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 2月 24 12:26 /usr/bin/java -> /etc/alternatives/java
[root@localhost ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 2月 24 12:26 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
[root@localhost ~]# ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/
[root@centos7-2 nacos]# vi /etc/profile
# 在最后增加
export JAVA_HOME=/opt/java
export JRE_HOME=$JAVA_HOME/jre# 这里和前面设置有点不一样,改为这个
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile
systemctl start nacos
十三、docker安装(不用)
-
docker安装
# 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
# 安装依赖包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 --skip-broken
# 配置docker配置Docker的yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新 yum 缓存
yum makecache fast
#安装Docker社区版
yum install -y docker-ce
# 启动Docker
[root@localhost ~]# docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2025-03-02 13:08:38 CST; 23s ago
Docs: https://docs.docker.com
Main PID: 2257 (dockerd)
Tasks: 9
Memory: 29.1M
CGroup: /system.slice/docker.service
└─2257 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockMar 02 13:08:35 localhost.localdomain systemd[1]: Starting Docker Application Container Engine...
Mar 02 13:08:35 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:35.266369560+08:00" level=info msg="Starting up"
Mar 02 13:08:35 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:35.667719413+08:00" level=info msg="Loading containers: start."
Mar 02 13:08:37 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:37.465713089+08:00" level=info msg="Firewalld: interfac...rning"
Mar 02 13:08:37 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:37.936192001+08:00" level=info msg="Loading containers: done."
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.072361989+08:00" level=info msg="Docker daemon" comm...26.1.4
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.072726144+08:00" level=info msg="Daemon has complete...ation"
Mar 02 13:08:38 localhost.localdomain dockerd[2257]: time="2025-03-02T13:08:38.371166208+08:00" level=info msg="API listen on /run/....sock"
Mar 02 13:08:38 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
[root@localhost ~]# docker -v
Docker version 26.1.4, build 5650f9b
#配置镜像加速
[root@localhost ~]# vim /etc/docker/daemon.json
[root@localhost ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://dockerhub.azk8s.cn",
"https://mirror.ccs.tencentyun.com",
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.1panel.live",
"https://atomhub.openatom.cn/",
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
-
安装jkd8
# 拉取jdk1.8官方镜像
[root@localhost ~]# docker pull kdvolder/jdk8
Using default tag: latest
latest: Pulling from kdvolder/jdk8
50aff78429b1: Pull complete
f6d82e297bce: Pull complete
275abb2c8a6f: Pull complete
9f15a39356d6: Pull complete
fc0342a94c89: Pull complete
8fa98a855564: Pull complete
Digest: sha256:419d116314d545535b538fa0a3730836ab2505963e43412f25c70c3fd29bdff3
Status: Downloaded newer image for kdvolder/jdk8:latest
docker.io/kdvolder/jdk8:latest
#查看镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
kdvolder/jdk8 latest b83ae7c076b1 7 years ago 488MB
#在docker容器中运行镜像
[root@localhost ~]# docker run -di --name=jdk1.8 kdvolder/jdk8
78598d3e9341f9215ed5e38b980966c132f1c3eee3380b9a7f77a76f577a8f12
# 进入容器查看jdk安装版本
[root@localhost ~]# docker exec -it jdk1.8 /bin/bash
root@78598d3e9341:/# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
十四、Seata-1.6.1的安装
1、下载安装
cd /opt/tools
wget https://github.com/seata/seata/releases/download/v1.6.1/seata-server-1.6.1.tar.gz
tar zxvf seata-server-1.6.1.tar.gz
mv seata /opt/seata
2、配置环境
修改对应的参数:seata/confapplication.yml
# 授权
chown -R education.education /opt/seata
3. 启动
cat >> /usr/lib/systemd/system/seata.service << 'EOF'
[Unit]
Description=Seata
After=network.target[Service]
User=education
ExecStart=/opt/seata/bin/seata-server.sh
Type=forking
WorkingDirectory=/opt/seata/bin[Install]
WantedBy=multi-user.target
EOF
# 设置开机启动
systemctl enable seata# 启动
systemctl start seata
# 关闭
systemctl stop seata
# 重启
systemctl restart seata1. 若需要集群,部署多个seata-server即可实现(原理:因为其注册到nacos,利用nacos实现集群)
2. 若使用db模式,默认的数据库数据库驱动不适配MySQL8.0,需要将./seata/lib/jdbc下的驱动复制到./seata/lib
3. db模式下的脚本地址:https://github.com/seata/seata/tree/v1.6.1/script/server/db
十五、MinIO安装
1、安装
mkdir -p /opt/minio
cd /opt/minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x miniocat >> /opt/minio/minio.conf << 'EOF'
MINIO_ROOT_USER=f8468f81034b1761
MINIO_ROOT_PASSWORD=f8468f81034b1761
MINIO_VOLUMES=/opt/minio/data
MINIO_OPTS="--console-address :9001"
EOF
2. 启动
cat >> /usr/lib/systemd/system/minio.service << 'EOF'
[Unit]
Description=MinIO
After=network.target[Service]
LimitNOFILE=65536
LimitNPROC=65536
EnvironmentFile=/opt/minio/minio.conf
ExecStart=/opt/minio/minio server $MINIO_VOLUMES $MINIO_OPTS[Install]
WantedBy=multi-user.target
EOF
# 设置开机启动
systemctl enable minio# 启动
systemctl start minio