Appearance
问题现象
在访问系统接口、登录后台或执行命令行时,系统抛出 Redis 异常: RedisException: NOAUTH Authentication required. 或 [500] 系统错误:NOAUTH Authentication required。
根本原因
该错误由 Redis 服务端抛出,含义为: Redis 服务器开启了访问密码认证(requirepass),但 EBAOZU 系统在向 Redis 建立连接时未发送认证密码,或 .env 配置文件中留空了密码。
解决步骤
检查 Redis 服务端是否设置了密码
- 宝塔面板用户:进入【软件商店】 -> 找到已安装的【Redis】 -> 点击【设置】 -> 【性能调整/密码设置】。查看当前的
requirepass是否配置了密码。 - 命令行排查:在终端连接 Redis CLI 测试:bash
redis-cli # 若执行 ping 提示 NOAUTH Authentication required,说明开启了密码 auth 你的密码
在 .env 中配置 Redis 密码
打开项目根目录下的 .env 文件,找到 [REDIS] 配置段,填入与 Redis 服务端一致的密码:
ini
[REDIS]
REDIS_HOSTNAME = 127.0.0.1
PORT = 6379
REDIS_PASSWORD = 你的Redis实际密码
SELECT = 0注意:
- 若 Redis 服务端未设置密码(
requirepass为空),则.env中的REDIS_PASSWORD必须留空(即REDIS_PASSWORD =)。- 确保密码前后没有多余的空格或特殊转义符号。
重启 Swoole 守护进程(必须操作)
修改 .env 文件后,必须重启常驻内存的 Swoole 守护进程,否则常驻的旧连接依然会报错:
bash
supervisorctl restart ebaozu_v4重启完成后再次请求接口,NOAUTH 异常即可解决。