BullMQ连接Redis企业版数据库报错:WRONGPASS无效用户名密码对
解决BullMQ连接Redis企业版时的WRONGPASS错误
问题场景
用BullMQ创建队列连接Redis企业版(Redis Labs)时,出现用户名密码配对无效的错误,代码及报错信息如下:
连接代码
import { Queue, FlowProducer } from "bullmq"; import env from "dotenv"; env.config() const redisOptions = { username: 'Admin_user', password: `${process.env.REDIS_DB_PASS}`, host: 'redis-14244.c265.us-east-1-2.ec2.cloud.redislabs.com', port: 14244 } export const my_Queue = { create_file_queue: new Queue("create-file", {connection: redisOptions}), construct_data_queue: new Queue("construct-data", {connection: redisOptions}) }
报错信息
node:internal/process/esm_loader:97 internalBinding('errors').triggerUncaughtException( ^ [ErrorReply: WRONGPASS invalid username-password pair] Node.js v18.14.1
排查与解决步骤
区分Redis账号与数据库访问用户
Redis企业版的数据库访问用户名不是你登录Redis Cloud的管理员账号,而是在数据库详情页的「Access Control」中配置的专属用户,通常默认值为default,先去控制台确认正确的数据库用户名。验证环境变量加载正确性
在代码中添加打印语句,确认process.env.REDIS_DB_PASS的实际值:env.config() console.log(process.env.REDIS_DB_PASS); // 检查输出是否与控制台的数据库密码完全一致同时确保
.env文件放在项目根目录,变量名无拼写错误,值不要额外添加引号或空格。改用URL格式配置连接
替换分散的host/port/username/password配置为URL格式,避免参数遗漏:const redisUrl = `redis://${process.env.REDIS_USER}:${process.env.REDIS_DB_PASS}@redis-14244.c265.us-east-1-2.ec2.cloud.redislabs.com:14244`; const redisOptions = { url: redisUrl };检查IP白名单设置
Redis企业版默认限制IP访问,若运行代码的服务器/本地IP不在数据库的「Security」白名单中,可能会返回误导性的认证错误。去控制台添加当前IP后重试。重置数据库密码
若以上步骤均无效,可能是密码存在特殊字符转义或输入错误,直接在Redis控制台重置数据库密码,更新到.env文件后重新测试。
内容的提问来源于stack exchange,提问作者Jriffs
相关产品推荐
相关产品推荐

