在nacos中默认的服务密码是配置在users表和roles表中的,要是用nacos/nacos登录,你的这两个表的内容必须是这样的(其他设置除外):
users表:
roles表:
首次导入领课教育的数据库os_nacos.sql文件内容和执行结果都是正常的没问题的,如下:
但是如果你领课教育的os_nacos数据库中执行了其他的数据库建表文件(.sql文件)如果将该users表覆盖了。那么users表的结构和内容都会被改掉了,覆盖掉,这时如果你手贱,你退出nacos账号,巧了,你再用nacos/nacos登录,账号密码就错了,登不上去了。我这边就犯了这个错误。
我将领课教育的几个数据库执行文件都在os_nacos数据库上执行了,这是错误的,应该每个文件对应新建一个数据库,这里我是在nacos配置文件中发现的错误,因为nacos配置数据源时分别链接了这几个文件的同名数据库,也就是说你需要在MySQL新建5个数据库os_course、os_job、os_nacos、os_system、os_user,然后在分别执行对应的sql可执行文件:
而我却错误的都把这几个可执行文件都在os_nacos数据库上执行了,这才导致登录nacos的账号密码users表被覆盖。(如下48张表在同一个数据库中,这样是错的)
把领课教育的数据库os_开头的几个都删掉吧。
重新逐个建数据库吧!这样就没问题啦!
如果你的nacos的的登录配置users表被覆盖了。可以重新执行如下的nacos数据库初始化SQL文件:
将该文件nacos-mysql.sql文件备份一份,然后删掉其余的创建表语句,只留下如下语句(我这边是将users表和roles表一起删了,你可以只删掉users表,下面的语句也就只保留创建users表的语句了):
CREATE TABLE `users` (
`username` varchar(50) NOT NULL PRIMARY KEY,
`password` varchar(500) NOT NULL,
`enabled` boolean NOT NULL
);
CREATE TABLE `roles` (
`username` varchar(50) NOT NULL,
`role` varchar(50) NOT NULL,
UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
最关键的就是最后两行(或者插入users表数据的一行),保存之后,在领课教育服务端的数据库os_nacoss上执行上面的建表文件,即可恢复users表的内容。
这时刷新nacos又可以用nacos/nacos默认的密码账号登陆了!