我通过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
我们给到的建议是:
根据您提供的信息,您通过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社区群4"
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。