Nacos源码连接数据库编译报错 java.lang.IllegalArgumentException: db.num is null

572 阅读1分钟

Nacos源码启动报错: java.lang.IllegalArgumentException: db.num is null

解决步骤:

image.png

1、mysql新建库:nacos,字符集:utf8 ,排序规则:utf8_general_ci;

2、找到distribution项目目录下nacos-mysql.sql,将sql脚本执行到数据库的nacos库中 如果你用的是mysql5.7的版本,你可能会遇到一些执行sql的问题:

老版本datetime类型设置默认值CURRENT_TIMESTAMP会报错,例如:

image.png 所以可以将datetime换成timestamp类型,就可以设置默认值了 (第一次尝试的时候是先去掉了默认值创了datetime类型,然后再改类型为timesatmp,设置默认值)

image.png

注意: 如果你不设置默认值,nacos在发布配置的时候会报错,哪怕你yaml文件格式都正确:

image.png

最后检查一下所有的表是否都创建完毕,内置数据是否插入完毕

3、在console项目目录下找到application.properties,修改数据库配置:

image.png

修改点:

1)放开 spring.datasource.platform = mysql # 使用mysql数据库

2)放开 db.num = 1

3)修改 数据库连接用户名&密码(数据库nacos创建好)

4.修改启动脚本startup.cmd,单机启动模式(默认集群模式)

image.png

5.添加环境配置:

-Xmn1g -Dnacos.standalone=true -Dnacos.preferHostnameOverIp=true -Xloggc:D:\nacos

image.png

6.console项目下找到启动类Nacos,启动项目,在nacos控制台上添加配置,修改配置,观察数据库

image.png

配置信息,配置历史信息都会存在了