1、环境要求
JDK版本:
JDK 8 + Spring Boot 2.7(master分支)
JDK 17/21 + Spring Boot 3.2(master-jdk17分支)
数据库: MySQL 5.7+(支持Oracle/PostgreSQL/SQL Server等)
Redis: 5.0+
Node.js:14+(前端开发需要)
安装好以上软件后需要启动MySQL,Redis服务安装好以上软件后需要启动MySQL,Redis服务
安装好以上软件后需要启动MySQL,Redis服务
2、后端安装
1)克隆仓库
java
git clone https://gitee.com/zhijiantianya/ruoyi-vue-pro.git
2)创建用户及数据库
java
CREATE DATABASE `ruoyi-vue-pro` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
CREATE USER 'yudao'@'%' IDENTIFIED WITH mysql_native_password BY 'yudao123';
CREATE USER 'yudao'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yudao123';
GRANT ALL ON yudao.* TO 'binghuo'@'%' ;
GRANT ALL ON yudao.* TO 'binghuo'@'localhost' ;
FLUSH PRIVILEGES;
3)导入表及数据
在src/sql/mysql目录小有两个sql脚本,都导入。
生产环境之下一下命令
java
mysql -uroot -p ruoyi-vue-pro < ruoyi-vue-pro.sql
mysql -uroot -p ruoyi-vue-pro < quartz.sql
4)配置后端服务
src/main/resources/application-local.yaml中按需修改server.port, spring.datasource相关内容,参考如下。
java
server:
port: 48080
spring:
# 服务模块
# 数据源配置项
autoconfigure:
exclude:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
- org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration # 排除积木报表带来的 MongoDB 的自动配置
# - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
- de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
datasource:
druid: # Druid 【监控】相关的全局配置
web-stat-filter:
enabled: true
stat-view-servlet:
enabled: true
allow: # 设置白名单,不填则允许所有访问
url-pattern: /druid/*
login-username: # 控制台管理用户名和密码
login-password:
filter:
stat:
enabled: true
log-slow-sql: true # 慢 SQL 记录
slow-sql-millis: 100
merge-sql: true
wall:
config:
multi-statement-allow: true
dynamic: # 多数据源配置
druid: # Druid 【连接池】相关的全局配置
initial-size: 1 # 初始连接数
min-idle: 1 # 最小连接池数量
max-active: 20 # 最大连接池数量
max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
test-while-idle: true
test-on-borrow: false
test-on-return: false
primary: master
datasource:
master:
name: ruoyi-vue-pro
url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
username: yudao
password: yudao123
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
# username: SYSDBA # DM 连接的示例
# password: SYSDBA # DM 连接的示例
slave: # 模拟从库,可根据自己需要修改
name: ruoyi-vue-pro
lazy: true # 开启懒加载,保证启动速度
url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
username: yudao
password: yudao123
# username: sa
# password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W
# Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
redis:
host: 127.0.0.1 # 地址
port: 6379 # 端口
database: 0 # 数据库索引
#password: Binghuo2435 # 密码,建议生产环境开启
5)启动后端服务

控制台没有报错,打印出项目启动成功,结果如下:

6)打包发布方法

建议参考以下博文修改pom.xml中配置进行优化:
3、前端安装
1)克隆仓库
java
git clone https://gitee.com/yudaocode/yudao-ui-admin-vue2.git
或者
git clone https://gitee.com/yudaocode/yudao-ui-admin-vue3.git
2)配置阿里npm镜像源
java
# 查看当前镜像源
npm config get registry
# 设置阿里镜像源
npm config set registry http://registry.npmmirror.com
# 还原官网
npm config set registry https://registry.npmjs.org/
3)安装依赖及错误处理
java
# 安装依赖
cd yudao-ui-admin-vue2
npm install
如果出现如下错误,请使用命令npm install --legacy-peer-deps,这是由于包兼容性导致的
java
npm ERR! Conflicting peer dependency: eslint@6.8.0
npm ERR! node_modules/eslint
npm ERR! peer eslint@">= 1.6.0 < 7.0.0" from @vue/cli-plugin-eslint@4.5.18
npm ERR! node_modules/@vue/cli-plugin-eslint
npm ERR! dev @vue/cli-plugin-eslint@"4.5.18" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
4)配置后端接口及代理
在yudao-ui-admin-vue2\.env.dev中配置后端服务路径
java
VUE_APP_BASE_API = 'http://localhost:48080'
在 E:\yudao-20240403\yudao-ui-admin-vue2\vue.config.js中修改后端代理
java
proxy: {
['/proxy-api']: {
target: `http://localhost:48080`,
// target: `http://api-dashboard.yudao.iocoder.cn`,
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
},
5)启动前端应用及错误处理
bash
yudao-ui-admin-vue2
npm run dev
启动完成后,正常情况控制台会输出,按住ctrl 点击 http://localhost:80/在浏览器中访问

一般都会出现如下这个错误
java
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_gethostname returned ENOSYS (function not implemented)
at new Defaults (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\Defaults.js:26:20)
at new Parser (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\EventParser.js:8:14)
at Object.<anonymous> (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\dao\client.js:11:19)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (E:\yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\services\IPC.js:4:14) {
code: 'ERR_SYSTEM_ERROR',
info: {
errno: -4054,
code: 'ENOSYS',
message: 'function not implemented',
syscall: 'uv_os_gethostname'
},
errno: [Getter/Setter],
syscall: [Getter/Setter]
}
修复方法:
按住ctrl 点击第二行的yudao-ui-admin-vue2\node_modules\@achrinza\node-ipc\entities\Defaults.js,找到 const os = require('os'); 在后面上如下语句
bash
const os = require('os');
os.hostname=()=>"localhost"
6)打包发布
java
cd yudao-ui-admin-vue2
npm run build:prod
按二级目录发布及nginx配置可以参考以前的博文
Ruoyi-vue-pro Vue + nginx 二级目录部署到云服务器
vue-cli build, vite build 生产部署刷新或弹窗404,页面空白修复方法
==========================================================
== 如果我的博文对您有帮助请别忘了点赞,收藏,关注,谢谢! ==
== 您的关注和鼓励是我继续努力的动力源泉 ==
==========================================================