从零启动 ruoyi-vue-pro 单体后端:JDK 8、MySQL、Redis 与常见报错排查0720

从零启动 ruoyi-vue-pro 单体后端:JDK 8、MySQL、Redis 与常见报错排查

本文基于本地 ruoyi-vue-pro 单体项目的实际启动过程整理。目标不是"把项目点起来",而是理解启动依赖,并能够定位常见环境问题。

1. 先分清项目版本:单体版不是微服务版

芋道源码常见有两类项目:

text 复制代码
ruoyi-vue-pro:单体多模块项目
yudao-cloud:微服务项目

两者目录结构相似,但启动方式不同。

当前项目是 ruoyi-vue-pro 单体版,因此本地开发不需要启动:

text 复制代码
Nacos
Gateway
多个 system / infra 微服务

只需要启动一个 Java 进程:

text 复制代码
YudaoServerApplication

它会加载当前已启用的模块。默认通常启用 systeminfra,商城、支付、工作流等模块显示"已禁用"是正常日志,不是启动失败。

2. 本地启动依赖关系

后端启动不是只点击 Java 的 main 方法,而是依赖以下基础设施:

text 复制代码
YudaoServerApplication
        │
        ├── MySQL:业务数据、用户、角色、菜单、日志等
        │
        └── Redis:缓存、Token、分布式锁等

因此,正确顺序是:

text 复制代码
启动 MySQL
→ 创建并导入数据库
→ 启动 Redis
→ 启动 YudaoServerApplication

3. JDK 版本怎么确认?

不要看到新项目就直接使用 JDK 17 或 JDK 21,要先看项目根目录的 pom.xml

xml 复制代码
<revision>2026.06-jdk8-SNAPSHOT</revision>
<java.version>1.8</java.version>

因此当前项目应使用:

text 复制代码
JDK 8
Project SDK:1.8
Language level:8

可以在 PowerShell 验证:

powershell 复制代码
java -version
javac -version

4. MySQL 配置与数据库初始化

本地数据库连接配置位于:

text 复制代码
yudao-server/src/main/resources/application-local.yaml

关键配置示例:

yaml 复制代码
spring:
  datasource:
    dynamic:
      datasource:
        master:
          url: jdbc:mysql://127.0.0.1:3306/ruoyi-vue-pro-jdk8
          username: root
          password: ******

注意:url 中的数据库名必须真实存在。

4.1 创建数据库

登录 MySQL:

powershell 复制代码
mysql -u root -p

然后执行:

sql 复制代码
CREATE DATABASE `ruoyi-vue-pro-jdk8`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

USE `ruoyi-vue-pro-jdk8`;

4.2 导入初始化 SQL

项目 SQL 文件位于:

text 复制代码
sql/mysql/ruoyi-vue-pro.sql

在 MySQL 客户端执行:

sql 复制代码
USE `ruoyi-vue-pro-jdk8`;

SOURCE D:/0714Springboot/ruoyi-vue-pro/sql/mysql/ruoyi-vue-pro.sql;

导入完成后验证:

sql 复制代码
SHOW TABLES;

预期能看到:

text 复制代码
system_users
system_role
system_menu
infra_api_access_log

5. 常见 MySQL 报错排查

5.1 Unknown database 'ruoyi-vue-pro-jdk8'

含义:后端能连接到 MySQL 服务,但配置中的数据库不存在。

解决:

sql 复制代码
CREATE DATABASE `ruoyi-vue-pro-jdk8` DEFAULT CHARACTER SET utf8mb4;
USE `ruoyi-vue-pro-jdk8`;
SOURCE D:/0714Springboot/ruoyi-vue-pro/sql/mysql/ruoyi-vue-pro.sql;

5.2 No database selected

含义:执行 SQL 导入前,没有选择目标数据库。

错误示例:

sql 复制代码
SOURCE D:/0714Springboot/ruoyi-vue-pro/sql/mysql/ruoyi-vue-pro.sql;

正确顺序:

sql 复制代码
USE `ruoyi-vue-pro-jdk8`;
SOURCE D:/0714Springboot/ruoyi-vue-pro/sql/mysql/ruoyi-vue-pro.sql;

含义:Java 程序无法连到 MySQL 的 127.0.0.1:3306,通常是 MySQL 未启动。

验证命令:

powershell 复制代码
Test-NetConnection 127.0.0.1 -Port 3306 -InformationLevel Quiet

输出为 True 才表示端口可用。

6. Redis 为什么是必需的?

项目不仅用 Redis 做普通缓存,还会用它支撑:

text 复制代码
登录 Token 缓存
字典缓存
分布式锁
限流
验证码等临时数据

默认 Redis 配置同样在 application-local.yaml

yaml 复制代码
spring:
  redis:
    host: 127.0.0.1
    port: 6379
    database: 0

验证 Redis 端口:

powershell 复制代码
Test-NetConnection 127.0.0.1 -Port 6379 -InformationLevel Quiet

如果 Redis 未启动,后端通常会出现:

text 复制代码
Unable to connect to Redis server: 127.0.0.1:6379
Connection refused

这并不是 Java 代码错误,而是基础设施尚未就绪。

7. 最终启动后端

在 IDEA 中运行:

text 复制代码
cn.iocoder.yudao.server.YudaoServerApplication

默认端口是:

text 复制代码
48080

当控制台输出"项目启动成功"时,可以访问一个需要登录的接口验证服务:

text 复制代码
http://127.0.0.1:48080/admin-api/system/auth/get-permission-info

返回 HTTP 401 或"账号未登录"是正常的,它说明:

text 复制代码
后端服务已启动
→ 请求已经到达 Spring Boot
→ 接口鉴权已经生效

8. 面试怎么讲?

可以这样回答:

我本地启动 ruoyi-vue-pro 单体项目时,先确认项目使用 JDK 8,再启动 MySQL 和 Redis。MySQL 负责用户、权限、日志等持久化数据,Redis 不仅用于缓存,也支撑 Token、验证码和分布式能力。初始化数据库后,启动 YudaoServerApplication 即可加载 system 和 infra 模块。排查启动问题时,我会从异常链最底层判断是数据库连接、数据库不存在,还是 Redis 端口未启动,而不是直接修改 Mapper 或业务代码。

9. 我的复盘

  • 能解释单体项目和微服务项目的启动差异。
  • 能解释 MySQL、Redis 分别承担什么职责。
  • 能根据 Unknown databaseNo database selectedConnection refused 定位问题。
  • 能独立完成一次后端启动。

下一篇:ruoyi-vue-pro 后台登录链路:从 AuthController 到 Token、Redis 的完整流程

相关推荐
千里码aicood7 分钟前
Django+Vue 基于XGBoost与随机森林的沿海地区台风天气大数据预警系统实现
vue.js·随机森林·django
jay神1 小时前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
2601_961901709 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring
何以解忧,唯有..10 小时前
LangChain 工具调用(Tool Calling)实战指南
java·前端·langchain
QQ_216962909610 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端
软件聚导航10 小时前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
2601_9609067211 小时前
1X发布自己的世界模型1XWM
mysql·mongodb·rabbitmq·memcached
前端 贾公子11 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
2601_9622035111 小时前
Java进阶07集合(续)
java·开发语言