RuoYi-Cloud 微服务本地部署详细流程实录(IDEA + 本地 Windows 环境)

本文以 RuoYi-Cloud 3.x 版本为例,开发工具用的是 IntelliJ IDEA,数据库为 MySQL 8.x,注册中心选用本地 Nacos 2.2.3,Redis 为 3.x/5.x 均可。亲测全流程可用,细节与官方文档略有不同,避免新手踩坑。


目录

  1. 环境准备与版本要求

  2. 下载源码并导入 IDEA

  3. 数据库准备与 SQL 导入

  4. Nacos 配置:持久化&本地启动&关键参数

  5. 启动 Nacos 服务

  6. 检查并修改 Nacos 配置中心

  7. 启动 RuoYi 微服务各模块

  8. 启动前端(ruoyi-ui)项目

  9. 常见问题与排查建议


 0.官方教程写法

微服务官方文档:https://doc.ruoyi.vip/ruoyi-cloud/

Gitee 仓库源码:https://gitee.com/y_project/RuoYi-Cloud 

1. 环境准备

建议软件及版本(亲测可用):

组件推荐版本(最低)我的实际版本检查命令
JDK1.8+(推荐17)openjdk 17.0.16 Temurinjava -version
MySQL5.7+(推荐8.x)MySQL 8.0.42mysql -V
Redis3.0+Redis 3.0.504(本地Win)redis-server --version
Maven3.0+Apache Maven 3.9.10 mvn -v
Node.js12+v16.20.2node -v
Nacos2.2.3(重点!)2.2.3(本地包)启动后网页端口 8848

2. 下载源码并导入 IDEA

  • 访问 RuoYi-Cloud Gitee 仓库

  • 下载最新源码,解压到本地工作目录

  • 打开 IntelliJ IDEAFile -> Open 选择项目根目录。

  • 第一次导入会自动加载 Maven 依赖,视网速情况可能较慢。

  • 不需要 Eclipse,IDEA 完全兼容 RuoYi-Cloud


3. 数据库准备与 SQL 导入

用 Navicat/DBeaver/DataGrip 等工具新建数据库

  • ry-cloud (主业务库,必须)

  • ry-config (Nacos 配置/注册中心专用库,必须)

CREATE DATABASE ry-cloud DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE DATABASE ry-config DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

导入 SQL 脚本(解压源码后 /sql 目录里可找到)

  • ry-cloud 导入:ry_2021xxxx.sql(必须),如需定时任务再导入 quartz.sql(可选)

  • ry-config 导入:ry_config_2021xxxx.sql(必须)

⚠️ 数据库表没导好,后续 Nacos 注册、微服务启动会一堆报错!

如果不知道怎么使用Navicat导入SQL文件,请参考:Navicat 导入 SQL 文件_navicat导入sql文件-CSDN博客

4. Nacos 配置:持久化&本地启动&关键参数

建议用 Nacos 2.2.3,本地解压目录结构如下(重点检查 binconf 文件夹是否齐全):

持久化配置

编辑 nacos/conf/application.properties添加/修改如下内容(必须,不配不行):

# 指定MySQL持久化
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456# 推荐token配置,防止鉴权403
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

⚠️ 一定用你本地的数据库用户名和密码!

启动脚本参数

打开 nacos/bin/startup.cmd,检查并确保如下参数设置

set MODE="standalone"
set FUNCTION_MODE="all"
set SERVER=nacos-server

5. 启动 Nacos 服务

  • 推荐方式:本地 Windows 下双击 startup.cmd,或命令行运行:

startup.cmd -m standalone
  • 等待命令行提示 Nacos 启动成功。

  • 访问 http://localhost:8848/nacos/
    默认账号密码:nacos / nacos

6. 检查并修改 Nacos 配置中心

进入 Nacos 后台 - 配置管理

  • 路径:http://localhost:8848/nacos/index.html#/configurationManagement

  • 必须存在下列配置文件:

    • application-dev.yml

    • ruoyi-gateway-dev.yml

    • ruoyi-auth-dev.yml

    • ruoyi-system-dev.yml

    • ruoyi-monitor-dev.yml

    • ruoyi-gen-dev.yml

    • ruoyi-job-dev.yml

    • ruoyi-file-dev.yml

    • sentinel-ruoyi-gateway

修改微服务 yml 的数据库配置!

  • 例如 ruoyi-system-dev.yml 中:

datasource:master:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ry-cloud?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8username: rootpassword: 123456

⚠️ 密码、端口、数据库名一定和你本地一致!否则服务启动会报错。修改后一定记得点击“发布”或“保存”

7. 启动 RuoYi 微服务各模块

修改GatewayApplication、SystemApplication、AuthApplicaiton配置文件:

GatewayApplication - Bootstrap.yaml

# Tomcat
server:port: 8080# Spring
spring:application:# 应用名称name: ruoyi-gatewayprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: localhost:8848username: nacospassword: nacosconfig:# 配置中心地址server-addr: localhost:8848username: nacospassword: nacos# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}sentinel:# 取消控制台懒加载eager: truetransport:# 控制台地址dashboard: 127.0.0.1:8718# nacos配置持久化datasource:ds1:nacos:server-addr: localhost:8848dataId: sentinel-ruoyi-gatewaygroupId: DEFAULT_GROUPdata-type: jsonrule-type: gw-flow

AuthApplicaiton - Bootstrap.yaml

# Tomcat
server: port: 9200# Spring
spring: application:# 应用名称name: ruoyi-authprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848username: nacospassword: nacosconfig:# 配置中心地址server-addr: 127.0.0.1:8848username: nacospassword: nacos# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

SystemApplication - Bootstrap.yaml

# Tomcat
server:port: 9201# Spring
spring: application:# 应用名称name: ruoyi-systemprofiles:# 环境配置active: devcloud:nacos:discovery:# 服务注册地址server-addr: 127.0.0.1:8848username: nacospassword: nacosconfig:# 配置中心地址server-addr: 127.0.0.1:8848username: nacospassword: nacos# 配置文件格式file-extension: yml# 共享配置shared-configs:- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
  • 在 IDEA 的右侧服务面板,依次启动:

    1. RuoYiGatewayApplication(网关,必须)

    2. RuoYiAuthApplication(认证,必须)

    3. RuoYiSystemApplication(系统,必须)

  • 其它服务(如 gen、job、file、monitor)按需启动。

  • 启动日志出现类似 “Started RuoYiGatewayApplication in XX seconds” 即为成功。

若服务注册到 Nacos,Nacos 后台“服务管理”里能看到对应服务。

8. 启动前端(ruoyi-ui)

  • 进入 ruoyi-ui 目录,首次安装依赖:

    npm install

    开发环境启动前端:

  • 在 IDEA/VSCode 里,打开 package.json,直接点击 dev 脚本旁的“运行”按钮;

  • 或终端命令:

    npm run dev
    

  • 默认访问 http://localhost:80/ 或 8080 端口(看控制台打印)。

初始账号密码:
用户名:admin
密码:123456

9. 常见问题与实战踩坑总结(重点关注Nacos注册异常)

❗【重中之重】Nacos客户端无法注册/连接不上(Client not connected, current status:STARTING)

典型现象
  • 启动 gateway 或 system 服务时,控制台反复出现:

    com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
    

    com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING
    但你直接访问 http://localhost:8848/nacos 是能打开的。

    服务死活注册不上,项目启动失败或服务断连。

可能原因总结
  1. Nacos 启动慢/未就绪:微服务启动早于 Nacos,注册失败。

  2. 端口监听或网络隔离:Nacos 只监听 127.0.0.1,外部/容器内访问不到。

  3. 数据库未初始化/配置错:Nacos 持久化没连上 MySQL,实际并未“健康”启动。

  4. 防火墙/网络权限:端口被阻塞,外部机器/容器不能访问。

  5. 客户端配置写成 localhost:只适用于本机测试,跨主机或Docker环境务必用真实 IP。

  6. 多套 Nacos 实例混用:配置文件、注册中心混乱,导致服务互相注册不上。

  7. Nacos 版本兼容性/官方 bug:有些版本(如 2.0.3/2.0.4)兼容性较差。

实战终极解决办法

🚩 我的亲测建议:

  • 务必用 Nacos 2.2.3 官方本地包(不要用低版本/来路不明的Docker镜像)

  • 配置文件只保留一套,application.properties 必须写对持久化和 token 参数(见上文配置节)

  • 一定保证数据库已初始化,并且Nacos已成功连上MySQL

  • 启动前先访问:http://localhost:8848/nacos/v1/console/health/readiness,确认状态为OK

  • 各服务连接Nacos时,nacos.server-addr 推荐直接写本机IP,如 192.168.1.x:8848,别写localhost

  • 遇到“STARTING”不要只盯业务服务,先排查Nacos服务端

  • 本地/测试环境不要用多套Nacos,否则配置、注册容易混乱

  • Docker用户务必端口映射 -p 8848:8848,配置文件挂载用 -v

其他常见易踩坑

JAVA_HOME/JDK版本不对导致Nacos无法启动
  • 报错:
    Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!

  • 解决:

    • JAVA_HOME 必须指向 JDK(不要指向 JRE)

    • 设置后重开命令行窗口,echo %JAVA_HOME% 检查

    • java -version 必须能查到JDK

MySQL 连接失败 / 数据库不存在
  • 报错:
    java.sql.SQLSyntaxErrorException: Unknown database 'ry-cloud'

  • 解决:

    • 手动创建数据库(见上文)

    • 必须导入官方SQL

    • 数据库参数严格对齐,端口/字符集都别写错

多套Nacos/多套配置文件混用导致诡异Bug
  • 表现:

    • 日志一堆奇怪报错、服务注册不上

  • 解决:

    • 本地开发只保留一份Nacos和配置文件,别多头操作

    • 推荐本地用源码解压版,测试环境用docker,但不要混着来

    • 配置路径、内容一定统一、明确

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92304.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年了,程序员转行还这么难?别愁!大模型这趟“顺风车”,你搭不搭?

在“大龄程序员的未来在何方”这篇文章里比较乐观地介绍了程序员保持竞争力的几个方向,但现实依然是残酷的:很多人将不得不离开软件开发工作,转型去从事其他职业。 当你要这么做时,就会感慨:想不到一切竟如此艰难&…

CEH、OSCP、CISP、CISSP 四大网络安全认证攻略

以下是 CEH、OSCP、CISP、CISSP 四大网络安全认证的详细对比,涵盖认证定位、考试难度、适用场景及职业方向,帮助你快速选择适合自己的证书:1. 核心区别速览认证发证机构定位 考试形式适合人群国际认可度CEHEC-Council道德黑客渗透测试基础选择…

SnapDevelop支持uni-app开发:跨平台与原生体验的完美融合

随着移动互联网的迅速发展,开发者面临着多平台需求和技术挑战。传统开发模式要求为每个平台编写独立代码,不仅浪费时间,还增加了维护难度。作为一款强大的低代码开发工具,SnapDevelop打破了这一局限,通过对uni-app的支…

海康威视相机,MVS连接成功,但无图像怎么办?

问题:准备一个常见的海康 相机去海康机器视觉官网下载MVS软件。打开软件,连接相机。显示连接成功,并能看到相机的信息。点击开始采集发现没有图像解决:右侧找到触发。1. 触发模式 ON2.选择 软触发3 启用自动触发点击采集有图像但一…

Linux systemd 系统管理:systemctl 控制服务与守护进程

Linux systemd 系统管理:systemctl 控制服务与守护进程系统启动过程 Linux 系统的启动过程遵循以下步骤: 开机自检:计算机启动后,BIOS/UEFI 进行硬件自检,确认硬件设备正常MBR 引导:从指定的启动设备读取主…

《Day2-PyTorch Tensor 从入门到实践:核心操作与避坑指南》

一、Tensor的创建 在Torch中张量以 "类" 的形式封装起来,对张量的一些运算、处理的方法被封装在类中,官方文档: torch — PyTorch 2.7 documentation 1. 基本创建方式 以下讲的创建tensor的函数中有两个有默认值的参数dtype和d…

两种格式数据介绍——bin 、 yuv文件

一、场景存储 通常指的是用于存储摄像头或传感器原始采集数据的文件格式,尤其是在自动驾驶、机器人、安防、工业视觉等需要记录真实世界场景的应用中。格式存储内容用途场景特点.binLiDAR点云、毫米波雷达数据、IMU、GPS、原始传感器帧自动驾驶仿真、SLAM建图、数据…

【网络运维】Linux:SELinux简介和配置

SELinux 介绍 SELinux 概述 文件权限控制了哪些用户或用户组可以访问哪些特定文件,但未限定用户访问文件的方式。 例如:对于文件的写入权限而言, 结构化数据文件是否应当设计为只能使用特定的程序写入,但其他编辑器仍可以打开和修…

GaussDB SQL执行计划详解

1 问题现象SQL执行计划是GaussDB性能分析及调优的核心,它输出三个关键信息:访问路径:扫描表数据的路径。连接顺序:多表连接顺序。连接方式:多表连接方式。2 技术背景GaussDB SQL语句执行计划是数据库为运行SQL语句而执行的操作步骤…

02.【数据结构-C语言】顺序表(线性表概念、顺序表实现:增删查、前向声明、顺序表实现通讯录项目:增删改查、通讯录数据导入及保存到本地文件)

目录 1. 线性表 2. 顺序表概念及分类 2.1 顺序表的概念 2.2 顺序表分类 2.3 动静态顺序表对比 3. 顺序表的实现(附完整版代码) 3.1 顺序表结构体声明 3.2 初始化&销毁 3.3 插入(尾插、头插、指定位置之前插入) 3.4 …

MyBatis核心配置深度解析:从XML到映射的完整技术指南

🔧 MyBatis核心配置深度解析:从XML到映射的完整技术指南 🚀 引言:MyBatis作为Java生态中最受欢迎的持久层框架之一,其强大的配置体系是实现灵活数据访问的核心。本文将深入解析MyBatis的配置文件架构、映射机制以及高级…

OpenCV HSV与RGB颜色模型的区别

HSV与RGB颜色模型的区别 HSV(Hue, Saturation, Value)和 RGB(Red, Green, Blue)是两种不同的颜色表示方式,主要区别如下:对比项RGBHSV定义基于红、绿、蓝三原色的混合基于色相(H)、饱…

具有柔性关节的机械臂matlab仿真

柔性关节机械臂MATLAB仿真方案,包含动力学建模、控制器设计和可视化分析。该方案基于拉格朗日方程建立柔性关节模型,并实现了PD控制、滑模控制和自适应控制三种控制策略。 MATLAB仿真 %% 柔性关节机械臂仿真 - 完整系统 % 作者: MATLAB技术助手 % 日期: …

数据结构—队列和栈

1.二级指针的使用二级指针: 1. 在被调函数中,想要修改主调函数中的指针变量,需要传递该指针变量的地址,形参用二级指针接收。 2.指针数组的数组名是一个二级指针,指针数组的数组名作为参数传递时,可用二级指…

均线:从市场脉搏到量子计算的时空密码

一部跨越百年的技术分析进化史,揭示金融市场的数学本质 引言:金融市场的永恒罗盘 在华尔街百年风云中,一个简单的数学工具始终闪耀着智慧光芒——移动平均线(Moving Average)。从杰西利弗莫尔的手绘图表到文艺复兴科技的量子模型,均线系统完成了从经验工具到科学框架的惊…

Python 通过Playwright+OpenCV破解滑动验证码 实例

由于公司最近需要对接某业务系统,涉及到部分数据需要提交至其它平台业务系统,只有其它平台账户,没有接口,因此做此开发。首先通过OpenCV计算出验证验证码滑块距离,根据距离,使用 Playwright 利用滑动距离模…

山东省天地图API申请并加载到QGIS和ArcGIS Pro中

目的:在QGIS/ArcGIS Pro中加载山东省不同时期的历史影像1、申请API 山东省天地图的API和国家天地图的API不通用,需要单独申请。 https://shandong.tianditu.gov.cn/ 打开本地服务资源找到影像的详情页 点击申请地址按照下面的步骤一步一步来,…

qt窗口--02

文章目录qt窗口--02QMessageBoxQColorDialogQFileDialogQFontDialogQInputDialog、结语很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!! 作者:٩( ‘ω’ )و260 我的专栏:qt&#…

Linux seLinux

Linux seLinux 1、什么是selinux,security enhanced linux–安全加强的linux。 是由美国国家安全局开发的以及历史。selinux之前是基于自主存取控制方法DAC, 只要符合权限即可,通过suid和sgid特殊权限存在有一定的安全隐患, 甚至一…

Linux: NFS 服务部署与autofs自动挂载的配置

Linux: NFS 服务部署与autofs自动挂载的配置NFS(Network File System,网络文件系统)是一种基于 TCP/IP 协议的网络文件共享协议,允许不同主机在网络中共享文件资源,实现跨主机的文件访问与管理,…