一丶错误演示 {#content_views}

image.png

默认用户名和密码都是nacos但显示错误。

二丶解决 (原因:nacos-mysql.sql脚本执行不完整)

1. 登录SQLyog查看nacos_config库里的users表和roles表里是否有记录(Linux的话直接进去nacos_config库查这两个表有没有记录)(如果连nacos_config这个库都没有那就是sql脚本还没执行过,先去数据库里执行nacos提供的nacos-mysql.sql脚本,在nacos/conf/目录下)

image.png

image.png

如果nacos_mysql.sql脚本执行正确,以上users和roles表会有记录,如果没有说明nacos_mysql.sql执行有问题你没发现而已,因为nacos_mysql.sql最后两行还执行了插入语句也就是以上两条插入记录。

image.png

如果自行看一下表结构,会发现permissions表也不存在,所以推断问题可能出在执行sql文件到CREATE TABLE permissions时出现了错误,下面新建数据库重新导入sql进行一次测试
image.png
image.png
image.png
1260A509.jpg好好好,演我是吧,这次没出问题

咳咳,其实官方给出的sql文件本身是没有问题的,问题出在我导入的是RuoYi-Cloud框架提供的sql,出现了下面的错误
image.png


image.png
问题确实出在执行到CREATE TABLE permissions时出现错误[ERR] 1071 - Specified key was too long; max key length is 1000 bytes
image.png

2. 解决:

进入数据库nacos_config数据库执行这两条插入语句即可, 之后重启nacos服务就可以登录了。

INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);

INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

当然这还没完,permissions表还没创建呢,执行这条插入语句即可

CREATE TABLE `permissions` (
    `role` varchar(50) NOT NULL,
    `resource` varchar(192) NOT NULL,
    `action` varchar(8) NOT NULL,
    UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);

image.png


这并不是最佳的解决方法,盲猜导致这个问题的原因是RuoYi提供的sql文件中,存在一些问题,仔细对比官方和RuoYi提供的sql文件后发现,唯一的区别在于文件头RuoYi加入了创建数据库命令,数据库编码采用的 utf8mb4 ,而在上面进行测试时,默认数据库编码是utf8—utf8_unicode_ci,所以是成功了。
所以尝试使用utf8数据库编码,尝试导入RuoYi提供的sql文件
image.png
image.png
image.png
成功执行
为了控制变量保持测试的严谨性,尝试将官方的sql导入utf8mb4编码的数据库
image.png
image.png
image.png
image.png
如预料一般的失败
image.png


最后,建议大家使用utf8编码的数据库执行nacos_config.sql

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐