项目启动时,出现了报错信息:ERR Client sent AUTH, but no password is set
原因:Redis服务器没有设置密码,但客户端向其发送了AUTH(authentication,身份验证)请求携带着密码,导致报错。
一 命令行方式 设置密码
# 使用redis-cli连接上redis redis-cli # 查看是否设置了密码 auth 123456 (error) ERR Client sent AUTH, but no password is set # 报错说明没有设置密码 # 设置密码 config set requirepass root OK # 返回OK后即代表配置成功 # 验证设置的密码 AUTH 123456 Ok # 配置成功
这种方式存在一个问题:当我们将Redis服务器关掉之后,这些配置就会失效,下次再启动服务器,需要重新设置
二 配置文件方式 设置密码
修改配置文件里的参数。
在redis.windows.conf
或者redis.conf
的配置文件中找到requirepass
参数,设置参数密码,然后保存配置文件,重启Redis
# requirepass foobared requirepass 123456 #设置的密码
实际过程中,配置不生效,已经配置了密码,但是还会报错,后来在Redis启动时发现,Redis报错了:
Warning: no config file specified, using the default config. In order to specify a config file use C:\Program Files (x86)\Redis-x64-3.2.100\redis-server.exe /path/to/redis.conf
Redis启动时需要指定配置文件,否则还会使用默认配置
指定配置文件启动
redis-server.exe redis.windows.conf
关闭
./redis-cli -a root shutdown
两种修改方式区别:
- 修改配置文件设置的密码永久生效;使用命令设置的密码临时生效,重启后失效
- 修改配置文件设置的密码,需要重启生效;使用命令设置的密码,退出后再登录生效,重启后失效
- 命令的优先级高于配置文件的优先级