1、系统环境及软件版本

软件名称

版本号

kylin V10

Kylin Linux Advanced Server release V10 (Halberd)

java

jdk 17

nacos

3.1.1

2、安装前准备

# 修改系统主机名称
hostnamectl set-hostname nacos
​
# 安装必要软件包
dnf install vim curl wget -y

3、安装jdk17

根据系统选择合适的版本下载,此处我们选择 清华源的linux压缩包版本下载

wget https://mirrors.tuna.tsinghua.edu.cn/Adoptium/17/jdk/x64/linux/OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz
​
# 解压软件包
tar zxf OpenJDK17U-jdk_x64_linux_hotspot_17.0.18_8.tar.gz -C /usr/local/
# 创建软连接
ln -s /usr/local/jdk-17.0.18+8 /usr/local/java

按照官网提示内容 配置

# 配置环境变量
echo 'export JAVA_HOME=/usr/local/java' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
​
# 验证java版本
java -version

4、离线安装nacao3

官网文档

从github下载对应release版本

# 下载压缩包
wget https://github.com/alibaba/nacos/releases/download/3.1.1/nacos-server-3.1.1.tar.gz
# 解压
tar zxf nacos-server-3.1.1.tar.gz -C /usr/local/
​

由于Nacos从3.0.0版本开始默认启用控制台鉴权功能,因此如下3个鉴权相关配置必须填写

`nacos.core.auth.plugin.nacos.token.secret.key` is missing, please set with Base64 string: ${your_input_token_secret_key}
nacos.core.auth.plugin.nacos.token.secret.key` Updated:
----------------------------------
`nacos.core.auth.server.identity.key` is missing, please set: ${your_input_server_identity_key}
`nacos.core.auth.server.identity.key` Updated:
----------------------------------
`nacos.core.auth.server.identity.value` is missing, please set: ${your_input_server_identity_key}
`nacos.core.auth.server.identity.value` Updated:
----------------------------------

你也可以在conf/application.properties直接修改这三个变量

修改后直接运行(以单机模式)

sh startup.sh -m standalone

显示下面行表示启动成功

INFO Nacos started successfully in stand alone mode with embedded storage in 9221 ms

关闭服务

sh shutdown.sh

编写systemd自启动文件

sudo tee /etc/systemd/system/nacos.service << 'EOF'
[Unit]
Description=Nacos Server (running as root)
Documentation=https://nacos.io
After=network.target
​
[Service]
Type=forking
# 不指定 User/Group,默认以 root 运行
WorkingDirectory=/usr/local/nacos
Environment="JAVA_HOME=/usr/local/java"
Environment="PATH=/usr/local/java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecStop=/usr/local/nacos/bin/shutdown.sh
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
​
[Install]
WantedBy=multi-user.target
EOF
# 配置生效并启动
systemctl daemon-reload
systemctl enable --now nacos.service

5、生产环境使用mysql数据库

5.1、离线安装mysql8

先去官网上下载mysql8的离线安装包

下载地址:https://dev.mysql.com/downloads/mysql/

归档版本:https://downloads.mysql.com/archives/community/

我们选择community server下载,版本此次选择mysql 8.0.43 。

查看glibc版本

ldd --version

直接调用glibc

/lib/x86_64-linux-gnu/libc.so.6 或者 /lib64/libc.so.6

查看到glibc 2.28

# 检查并移除系统自带mariadb和mysql
[root@localhost ~]# rpm -qa | grep mariadb
mariadb-common-10.3.39-1.p02.ky10.x86_64
mariadb-connector-c-3.0.6-9.ky10.x86_64
mariadb-errmessage-10.3.39-1.p02.ky10.x86_64
mariadb-server-10.3.39-1.p02.ky10.x86_64
mariadb-10.3.39-1.p02.ky10.x86_64
[root@localhost ~]# rpm -qa | grep mysql
qt5-qtbase-mysql-5.11.1-20.p01.ky10.x86_64
python2-mysqlclient-1.3.12-8.ky10.x86_64
# 移除
sudo yum remove \
  mariadb-server \
  mariadb \
  mariadb-common \
  mariadb-connector-c \
  mariadb-errmessage \
  -y

# 下载压缩包 选择linux generic glibc2.28
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz
# 解压
tar xf mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz -C /usr/local
# 创建软连接
ln -s /usr/local/mysql-8.0.43-linux-glibc2.28-x86_64/ /usr/local/mysql
​
# 创建数据目录及用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
​
mkdir -p /var/log/mysql
​
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /var/log/mysql

配置环境变量

echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profile
source /etc/profile

修改配置文件

cat > /etc/my.cnf << 'EOF'
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
innodb_file_per_table=on
character-set-server=utf8mb4
log-error=/var/log/mysql/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
​
[client]
port=3306
socket=/usr/local/mysql/data/mysql.sock
default-character-set=utf8mb4
​
EOF
​
chmod 644 /etc/my.cnf

执行数据库初始化

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize

初始化完成后,/var/log/mysql/mysql.log 会自动生成默认 root 密码

也可以使用--initialize-insecure 参数会生成空密码

创建systemd启动文件

cat > /etc/systemd/system/mysql.service << 'EOF'
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
EOF
# 配置生效
systemctl daemon-reload
#启动mysqld服务
systemctl start mysql
#查看mysqld服务状态
systemctl status mysql
#开机启动mysqld服务
systemctl   enable  mysql

修改密码与远程登录

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
CREATE USER 'root'@'%' IDENTIFIED BY '新密码';
GRANT ALL PRIVILEGES ON *.* TO 'root';
flush privileges;

5.2、nacos3配置环境修改为mysql数据库

在mysql中创建nacos数据库

mysql -u root -p

create database nacos;

将nacos 目录下的conf/mysql-schema.sql 导入mysql 初始化 表结构和数据

mysql -u root -p nacos < /usr/local/nacos/conf/mysql-schema.sql

修改配置文件

/usr/local/nacos/conf/application.properties

spring.sql.init.platform=mysql
### Count of DB:
db.num=1
​
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos
​