安装nacos
nacosVersion:2.2.3 需要的java版本较高, 所以这里直接安装jdk17;
安装链接见nacos 和jdk 官网,具体选择下面图片中的两个版本哈
本来想直接传到csdn的,结果这边的资料审核还是有点繁琐,然后上传的速度也有点小慢(悄悄吐槽哈哈)
安装java jdk17+环境配置
# 查询系统自带的JDK
rpm -qa | grep java
# 卸载系统自带的JDK
rpm -e --nodeps java ...
cd /
# 使用rz命令上传JDK17到虚拟机
# 解压
tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
# 配置环境变量
vim /etc/profile
# 添加环境变量:
export JAVA_HOME=/usr/local/jdk-17.0.9
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
# 刷新配置
source /etc/profile
# 测试配置是否成功
java -version
nacos 配置持久化
cd /
# 使用rz命令上传Nacos到虚拟机
# 解压
tar -zxvf nacos-server-2.2.3.tar.gz -C /usr/local
# 在mysql中创建数据库my_nacos
# 查看Nacos持久化sql语句
cat /usr/local/nacos/conf/mysql-schema.sql
# 将文件内容在数据库my_nacos中运行,生成12张表
# 修改Nacos配置文件
vim /usr/local/nacos/conf/application.properties
# 添加如下配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://windows—ip(修改为你自己的IP哈):3306/my_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=你的用户名
db.password.0=你的密码
nacos 自带sql生成12张表结构
修改为支持远程连接 使用% 替换 local
查看nacos为什么启动失败
cat /usr/local/nacos/logs/start.out
bugs:
2024-04-13 16:10:23,693 ERROR Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘memoryMonitor’ defined in URL [jar:file:/usr/local/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-config-2.2.3.jar!/com/alibaba/nacos/config/server/monitor/MemoryMonitor.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘asyncNotifyService’: Unsatisfied dependency expressed through field ‘dumpService’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘externalDumpService’: Invocation of init method failed; nested exception is ErrCode:500, ErrMsg:Nacos Server did not start because dumpservice bean construction failure : No DataSource set
这是一个典型的 Spring 框架的依赖注入问题。错误发生在尝试创建 memoryMonitor
bean 的过程中,这个 bean 依赖于 asyncNotifyService
,而 asyncNotifyService
又依赖于 dumpService
。具体到底层,问题出在 externalDumpService
的初始化失败,原因是没有设置数据源(DataSource)
调整了一下datasource 的配置位置(放在唯一有字儿的地方) 解决了