开发者社区 > 云原生 > 微服务 > 正文

nacos中,网页端登录用nacos-nacos账号密码,提示不对 我看了数据库是空的,是什么原因?

我通过docker部署的nacos,但是我网页端登录用nacos-nacos账号密码,提示不对
我看了数据库是空的,是什么原因?

mysql> USE nacos_devtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT * FROM users;
Empty set (0.00 sec)

mysql> INSERT INTO users (username, password, enabled) VALUES ('nacos', MD5('nacos'), 1);
Query OK, 1 row affected (0.00 sec)

root@bozai-virtual-machine:~/nacos-docker# ls
build changlog env example nacos_devtest_backup.sql README.md README_ZH.md
root@bozai-virtual-machine:~/nacos-docker# pwd
/root/nacos-docker

展开
收起
我睡觉不困 2024-08-19 17:34:15 25 0
1 条回答
写回答
取消 提交回答
  • 我们给到的建议是:
    根据您提供的信息,您通过Docker部署了Nacos,并尝试使用nacos-nacos账号密码登录网页端,但遇到了登录失败的问题。同时,您检查MySQL数据库发现users表原本为空,之后您手动插入了一条记录,使用MD5加密的密码。这里存在几个关键点可能导致登录失败:

    密码加密方式不匹配:Nacos默认使用BCrypt算法对密码进行加密存储,而您在插入用户记录时使用的是MD5加密。根据Nacos的官方指引,密码需要使用BCrypt加密。

    默认用户名与您尝试的不一致:Nacos的默认用户名是nacos,而非nacos-nacos。

    基于以上分析,以下是解决问题的具体步骤:
    步骤1:删除错误插入的记录
    首先,由于您使用了错误的加密方式插入了用户记录,应从数据库中删除这条错误的记录,以避免混淆。
    DELETE FROM users WHERE username='nacos';
    步骤2:生成BCrypt加密的密码
    接下来,您需要生成一个BCrypt加密的密码。虽然您提到直接在数据库操作不推荐,但在此步骤中我们仅是为了获取加密后的密码。您可以使用Nacos提供的PasswordEncoderUtil工具类,或者在线BCrypt加密工具。
    使用Java工具类(如果您有Java环境)
    克隆Nacos源码
    git clone https://github.com/alibaba/nacos.git
    进入Nacos目录并编译
    cd nacos
    mvn clean install -Dmaven.test.skip=true
    运行PasswordEncoderUtil生成加密密码
    cd nacos-console/nacos-console-web/src/main/java/com/alibaba/nacos/console/utils
    java PasswordEncoderUtil your_desired_password
    或者使用在线工具
    您也可以在网上找到BCrypt加密的在线工具,输入您想要设置的密码,获取其BCrypt形式。
    步骤3:正确插入用户记录
    使用上一步获得的BCrypt加密密码,重新插入正确的用户记录到users表中。
    INSERT INTO users (username, password, enabled) VALUES ('nacos', 'YOUR_BCRYPT_PASSWORD', TRUE);
    请将YOUR_BCRYPT_PASSWORD替换为第二步得到的加密密码。
    步骤4:重启Nacos服务
    完成数据库操作后,重启您的Nacos服务,以便应用这些更改。
    解释

    之所以需要删除并重新插入记录,是因为Nacos要求密码使用特定的BCrypt算法加密,以确保安全性。
    通过正确地插入使用BCrypt加密的密码,可以确保Nacos能够识别并验证您提供的登录凭据。
    重启服务是为了确保Nacos加载最新的数据库配置,包括您新插入或更新的用户信息。

    请按照上述步骤操作,应该能解决您无法登录Nacos控制台的问题。如果问题依然存在,可能需要检查Nacos的配置文件,确保数据库连接等配置无误。

    参考链接:
    Nacos功能和需求列表 专家经验:nacos用户密码设置此回答整理自钉群"Nacos社区群4"

    2024-08-19 17:57:18
    赞同 1 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载