news 2026/11/5 6:15:32

CentOS7下Nacos 2.2.3单机版部署与MySQL持久化配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS7下Nacos 2.2.3单机版部署与MySQL持久化配置

1. 项目概述

在微服务架构盛行的当下,服务发现与配置管理已成为系统设计的核心需求。Nacos作为阿里巴巴开源的动态服务发现、配置和服务管理平台,凭借其轻量级、高可用和易扩展的特性,在众多微服务解决方案中脱颖而出。本文将基于CentOS7操作系统,详细演示Nacos 2.2.3版本的单机环境搭建过程,并重点配置MySQL持久化存储,确保配置数据不会因服务重启而丢失。

对于中小型团队或项目初期,单机版Nacos完全能够满足开发测试需求。相比集群部署,单机模式具有部署简单、资源占用少等优势,特别适合快速搭建本地开发环境或POC验证。而通过MySQL持久化配置,即使Nacos服务重启,所有注册的服务实例和配置信息都能完整保留,大大提升了开发调试的便利性。

2. 环境准备与依赖安装

2.1 系统环境检查

首先确保你的CentOS7系统已做好基础准备:

# 检查系统版本 cat /etc/redhat-release # 更新系统包 sudo yum update -y # 安装常用工具 sudo yum install -y wget curl vim net-tools

注意:建议使用全新的CentOS7系统进行操作,避免已有环境造成端口冲突或依赖问题。如果是在公司内网环境,可能需要先配置yum代理。

2.2 Java环境安装

Nacos 2.2.3需要JDK 1.8或以上版本运行。推荐安装OpenJDK:

# 安装OpenJDK 8 sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 验证安装 java -version javac -version

如果系统已安装其他Java版本,可以通过以下命令切换默认版本:

sudo alternatives --config java sudo alternatives --config javac

2.3 MySQL数据库安装

为Nacos配置持久化存储,我们需要先安装MySQL 5.7+:

# 添加MySQL Yum仓库 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm # 禁用MySQL 8.0仓库,启用5.7仓库 sudo yum-config-manager --disable mysql80-community sudo yum-config-manager --enable mysql57-community # 安装MySQL 5.7 sudo yum install -y mysql-community-server # 启动MySQL服务 sudo systemctl start mysqld sudo systemctl enable mysqld

安装完成后,需要获取初始密码并修改:

# 获取临时密码 sudo grep 'temporary password' /var/log/mysqld.log # 使用临时密码登录 mysql -uroot -p # 修改root密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; # 密码策略设置(开发环境可降低复杂度要求) SET GLOBAL validate_password_policy=LOW;

3. Nacos安装与配置

3.1 下载与解压Nacos

从官方仓库获取Nacos 2.2.3发布包:

# 创建安装目录 sudo mkdir -p /opt/nacos sudo chown $(whoami):$(whoami) /opt/nacos cd /opt/nacos # 下载Nacos(如网络问题可尝试国内镜像) 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 cd nacos

3.2 初始化MySQL数据库

在MySQL中创建Nacos专用的数据库和用户:

CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'nacos'@'%' IDENTIFIED BY 'Nacos@123'; GRANT ALL PRIVILEGES ON nacos_config.* TO 'nacos'@'%'; FLUSH PRIVILEGES;

然后导入Nacos提供的SQL脚本初始化表结构:

mysql -unacos -pNacos@123 nacos_config < conf/mysql-schema.sql

安全提示:生产环境请使用更复杂的密码,并限制访问IP。此处示例密码仅用于演示。

3.3 配置MySQL持久化

编辑Nacos的配置文件启用MySQL存储:

vim conf/application.properties

找到以下配置项并修改:

# 启用MySQL数据源 spring.datasource.platform=mysql # 配置MySQL连接(根据实际情况修改) db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos db.password.0=Nacos@123

注意:如果MySQL与Nacos不在同一主机,请确保MySQL已配置远程访问权限,并检查防火墙设置。

4. 启动与验证Nacos服务

4.1 启动Nacos服务

Nacos提供了多种启动方式,单机模式推荐使用内置的startup脚本:

# 以单机模式启动 sh bin/startup.sh -m standalone

启动成功后,可以通过日志查看运行状态:

tail -f logs/start.out

当看到"Nacos started successfully in stand alone mode"日志时,表示启动成功。

4.2 访问控制台

Nacos默认监听8848端口,访问地址为:

http://服务器IP:8848/nacos

默认登录账号密码均为nacos。首次登录后,建议立即修改默认密码。

4.3 服务注册测试

通过Nacos提供的API测试服务注册功能:

# 注册服务实例 curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example-service&ip=127.0.0.1&port=8080' # 查询服务列表 curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/service/list'

4.4 配置管理测试

测试配置发布与获取功能:

# 发布配置 curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs" -d "dataId=example.properties&group=DEFAULT_GROUP&content=server.port=8080" # 获取配置 curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP"

5. 系统配置优化

5.1 防火墙配置

如果启用了firewalld,需要开放Nacos相关端口:

sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent sudo firewall-cmd --reload

5.2 设置开机自启

创建systemd服务文件实现开机自启:

sudo vim /etc/systemd/system/nacos.service

添加以下内容:

[Unit] Description=Nacos Server After=network.target [Service] Type=forking ExecStart=/opt/nacos/nacos/bin/startup.sh -m standalone ExecStop=/opt/nacos/nacos/bin/shutdown.sh Restart=on-failure User=$(whoami) Group=$(whoami) [Install] WantedBy=multi-user.target

然后启用服务:

sudo systemctl daemon-reload sudo systemctl enable nacos sudo systemctl start nacos

5.3 JVM参数调优

根据服务器配置调整JVM参数,编辑启动脚本:

vim bin/startup.sh

找到JAVA_OPT配置,根据实际情况调整:

JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

提示:对于4GB内存的服务器,建议Xms和Xmx设置为2g;8GB内存可设置为4g。避免设置过大导致系统内存不足。

6. 常见问题排查

6.1 启动失败问题

问题现象:启动时报错"Unable to start embedded Tomcat"

可能原因:

  1. 端口8848被占用
  2. Java环境不兼容
  3. 数据库连接失败

解决方案:

# 检查端口占用 netstat -tlnp | grep 8848 # 检查Java版本 java -version # 检查数据库连接 mysql -unacos -pNacos@123 -h127.0.0.1 -e "use nacos_config; show tables;"

6.2 MySQL连接问题

问题现象:日志中出现"Communications link failure"

可能原因:

  1. MySQL服务未启动
  2. 用户名密码错误
  3. 远程访问权限未开启

解决方案:

# 检查MySQL服务状态 sudo systemctl status mysqld # 验证数据库连接 mysql -unacos -pNacos@123 -h127.0.0.1 # 检查用户权限 SELECT host, user FROM mysql.user;

6.3 控制台无法访问

问题现象:服务已启动但无法访问8848端口

可能原因:

  1. 防火墙未开放端口
  2. 服务器安全组限制
  3. Nacos绑定IP配置错误

解决方案:

# 检查防火墙 sudo firewall-cmd --list-ports # 检查Nacos绑定IP grep "server.ip" conf/application.properties # 默认应为0.0.0.0或服务器实际IP

7. 进阶配置建议

7.1 数据备份策略

虽然配置了MySQL持久化,但仍需定期备份数据:

# 简单备份脚本示例 mysqldump -unacos -pNacos@123 nacos_config > /opt/nacos_backup/nacos_config_$(date +%Y%m%d).sql

建议将备份脚本加入crontab,实现自动备份:

0 2 * * * /usr/bin/mysqldump -unacos -pNacos@123 nacos_config > /opt/nacos_backup/nacos_config_$(date +\%Y\%m\%d).sql

7.2 监控配置

为Nacos添加基础监控:

  1. 使用Spring Boot Actuator端点:

    management.endpoints.web.exposure.include=health,info,metrics management.endpoint.health.show-details=always
  2. 通过Prometheus监控:

    metrics.enabled=true metrics.export.prometheus.enabled=true

7.3 安全加固

生产环境必须进行安全加固:

  1. 修改默认账号密码
  2. 启用HTTPS
  3. 配置IP白名单
  4. 定期审计日志
# 日志审计示例 grep "login" logs/access_log.2023-*.log | awk '{print $1}' | sort | uniq -c | sort -nr
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 6:14:08

过滤器模式解析:从电商筛选到日志处理的实践

1. 过滤器模式基础认知第一次接触过滤器模式是在重构一个电商平台的商品筛选模块时。当时系统里有几十种商品属性&#xff0c;从价格区间、品牌到用户评价星级&#xff0c;各种筛选条件交织在一起&#xff0c;代码里到处都是if-else嵌套。直到发现过滤器模式这个利器&#xff0…

作者头像 李华
网站建设 2026/11/5 6:13:03

区块链与智能冷链优化中非海鲜贸易

1. 项目背景与行业痛点中非海鲜贸易长期以来面临着一个有趣的矛盾&#xff1a;一方面非洲西海岸盛产优质龙虾等海产品&#xff0c;另一方面中国作为全球最大的海鲜消费市场存在巨大需求。然而传统的跨境海鲜贸易链路存在几个核心痛点&#xff1a;冷链物流成本高昂&#xff08;占…

作者头像 李华
网站建设 2026/11/5 6:12:28

无人机分布式监控系统:架构设计与算法实现

1. 项目背景与核心价值无人机搭载相机网络的分布式监控系统正在成为安防、灾害监测和智慧城市领域的热门解决方案。相比传统固定摄像头网络&#xff0c;这种系统具有三大不可替代的优势&#xff1a;首先是机动性&#xff0c;无人机可以快速部署到任何需要监控的区域&#xff1b…

作者头像 李华
网站建设 2026/11/5 6:12:04

NHibernate联合主键实现与优化指南

1. NHibernate中的联合主键概念解析在数据库设计中&#xff0c;我们经常会遇到需要多个字段组合才能唯一标识一条记录的场景。这就是联合主键&#xff08;composite-id&#xff09;的典型应用场景。NHibernate作为.NET平台下成熟的ORM框架&#xff0c;提供了完善的联合主键支持…

作者头像 李华
网站建设 2026/11/5 6:11:43

东北大学高数上期末核心突破:可导性判定与极值拐点辨析

简介&#xff1a;本资源为东北大学《高等数学&#xff08;上&#xff09;》历年期末考试真题汇编&#xff0c;面向该校及同类理工科高校本科生&#xff0c;专用于考前系统复习、考点查漏与解题能力强化。试卷覆盖2005—2007年三套完整试题&#xff0c;题型规范、难度梯度合理&a…

作者头像 李华
网站建设 2026/11/5 6:11:18

Unity UI擦除效果:RenderTexture与Shader实现刮刮卡

项目标题是「Unity UI擦除效果」&#xff0c;这本质上是在做「刮刮卡 / 手指擦除遮罩」这类交互。我会按从业者口吻写一篇完整博文&#xff0c;涵盖实现路线选型、坐标换算、双缓冲、线段距离场、Shader 编写、进度统计和踩坑表&#xff0c;主体保证在 5000 字以上。直接从正文…

作者头像 李华