RuoYi(若依) 微服务分离版 启动及常见问题总结

官方资料

官方微服务版使用文档

源码下载

环境前提

 
 
  1. JDK >= 1.8 (必须是 1.8.0_152 以上版本)

  2. Mysql >= 5.7.0 (推荐5.7版本)

  3. Redis >= 3.0

  4. Maven >= 3.0

  5. Node >= 10

  6. nacos >= 1.4.1 (安装的目录勿带中文)

仔细核对上面的环境要求,改好什么后,出现问题,先重启nacos,再把那几个启动类重新启动。

手动在数据库客户端,SQL插入新的配置这种方式,一定要重启nacos。不然nacos不识别你的这个配置是个什么东西。

目录

一、下载

二、创建Mysql数据库

三、nacos服务器端

四、启动

1、后端

2、前端

五、常见问题


一、下载

根据上面的下载的源码导入到IDEA,然后maven初始化好

二、创建Mysql数据库

创建使用空间 ry-cloud、ry-config,并导入数据进去中,数据在源码sql目录下(如果你的数据库IP地址和redis的IP地址不是本地的,最好提前更换好sql脚本中的IP,IP出错的话,后面的各个功能都无法正常使用)

三、nacos服务器端

配置nacos持久化,修改conf/application.properties文件,增加支持mysql数据源配置(下面的数据库密码password记得改成自己的)

nacos官方下载地址:Releases · alibaba/nacos · GitHub

 
  
  1. # db mysql

  2. spring.datasource.platform=mysql

  3. db.num=1

  4. db.url.0=jdbc:mysql://localhost:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

  5. db.user=root

  6. db.password=password

conf/application.properties文件进行修改是 是指对nacos服务器端软件安装目录里面的配置文件进行修改,不是项目源码。

单机启动,不能直接点击startup.cmd 文件,需要CD到安装的bin目录,输入以下命令

window环境

startup.cmd -m standalone

linux环境

sh startup.sh -m standalone

启动成功如下图

输入127.0.0.1:8848/nacos 后如下图(里面的配置可以在线修改,数据库和redis的地址一定要修改正确的,配置文件的内容修改是在项目中是立即刷新,但是数据库和redis的地址是一定要重启项目才会被识别)

初始账号密码 nacos\nacos 记得后面自己改了。下面的配置内容,是在若依提供的SQL脚本里面的(不需要自己配置),导入上述的两个库(ry-cloud、ry-config),即可

 上面的每个配置文件都打开检查下,涉及数据库的IP、密码和redis 的IP和密码,都要换成自己的(本地的话就127.0.0.1)

 上面的每个配置文件都打开检查下,涉及数据库的IP、密码和redis 的IP和密码,都要换成自己的(本地的话就127.0.0.1)

 上面的每个配置文件都打开检查下,涉及数据库的IP、密码和redis 的IP和密码,都要换成自己的(本地的话就127.0.0.1)

四、启动

这里还有个redis中间件服务必须有,自己百度下怎么装就好

1、后端

根据若依的官方文档,启动相应的类

2、前端

 前端按照官方的介绍我是不能正常安装依赖,后面改成以下命令,才能正常安装启动

cnpm i 

 

浏览器输入127.0.0.1 或者localhost

至此若依的前后端都启动了,至于其它的功能,可以自己去学习,个人觉得若依的功能都写得很优雅,上手起来也是和容易的,有什么问题也可以加官方的群去了解

五、常见问题

碰到问题的时候,先全局检查下自己数据库、redis、该有的启动类有无正常启动,启动类窗口有无报错。

若依的源码基本都没有问题的,出现问题的话基本都是自己的环境配置错误,Maven的环境、JDK环境、mysql的版本太低导致、特别是新增模块特别容易出问题需要新增配置文件、路由配置新增、nacos重启等

 找不出问题的,先直接源码启动,别修改任何的配置、端口、包名、路径、账号密码。检查下,有哪些配置是改了的,不是源码原来的样子。往往就是改的那些配置,不止需要一个单个地方调整,还有其它地方也需要同步调整的。才会导致报错

1、前端使用 npm install 报错无法正常依赖,换成 cnpm i

2、(dynamic-datasource Please check the setting of primary) 这个问题多是新建模块不识别导致的,在本地启动的话,可以尝试将启动的启动类都关掉,然后再启动该问题消失,新建模块伴随的还有配置文件的数据库的url 识别不到问题,

在数据库新增新的yml配置文件记录,nacos服务器都可以看到该条记录了,但是实际上是没有注册到nacos服务器,还需要再重启nacos服务器端

3、不支持个人电脑和外网云服务器,路由转发,就是gateway\auth\ 在云服务器部署,只想在本地启动一个system,不可行,换成局域网的服务器则可以,关键局域网和你个人电脑是能互相访问,外网的网段 访问不到你的电脑

4、多数据源配置,如果不是salve来作为配置主键ID,则需要去对 ruoyi-common-datasource 该模块里,新增一个对应ID。因为ruoyi-common-datasource 只有master和salve两个数据源在,新增或调整则需要自己修改

5、开发环境 docker 部署注意事项

https://blog.csdn.net/FunnyWhiteCat/article/details/107521647
默认情况下,docker 内部网络和外部是隔离的。启动的时候讲宿主机的 8080 端口映射到 docker 内网关模块的 8080 端口,这样外部通过网关访问容器内的服务没有问题,内部服务间的调用也没有问题。但是我本地访问 docker 内部的服务的时候就访问不到了,因为 docker 内服务的 IP 都是172.*。我遇到的报错提示是:请求 auth 时超时。解决办法是修改docker的网络为 host,这样服务会共用宿主机的 IP ,访问就正常了。docker 的四种网络模式的区别可以参看:Docker四种网络模式。

6、spring.cloud.sentinel.datasource.ds1.nacos.rule-type 

JDK版本太低导致,需要JDK版本以上才能使用  1.8.0_152

7、/auth/login,异常信息:404 NOT_FOUN , 配置文件必须是 bootstrap.yml,改成 application.yml  来使用的话,等于配置中心失效,

还有就是配置中心没弄好,有可能是nacos数据库的配置中心就没配对,打开 ip:8848/nacos ,检查下是否有 表sys_config 里面所有配置在。

8、验证码500,检查vue的网关端口号和后端端口号是否一致。

9、jar包启动  Input length = 1 

编码乱了导致。启动命令修改成以下

java -Dfile.encoding=utf-8 -jar XXX.jar

10、Invalid bound statement (not found)

新建mapper.xml文件时出现,主要是其上级目录 mapper.xxx ,在创建的时候直接连着创建导致,需要先创一个mapper文件夹,再创建一个xxx文件夹,不能直接创建一个文件夹写着 mapper.xxx ,或者直接复制过来有时候也不行

11、Failed to configure a DataSource: 'url' attribute 

前面的(一、二、三、四  "大标题")步骤肯定是漏了什么东西,自己检查下就好,都问题不大

12、Error creating bean with name 'sysConfigController'  。这些都是属于项目初始化的类报错, 全局搜索 注解 @PostConstruct ,发现这些类都是调用redis和数据库的。那么就是你的数据库或者redis是有问题的,检查方法,IP、端口、账号、密码。是否可用,

最好测试下数据库和redis能不能正常工作(指的是可以插入数据,删除数据,光只能查询不行)。如果还不行的话,可以让别人的redis或者数据库给你用一下,测试下。反向验证是你自己的问题。

猜你喜欢

转载自blog.csdn.net/weixin_39570751/article/details/121143881