当我通过命令public override void OnApplyTemplate()
{
base.OnApplyTemplate();
Path p = GetTemplateChild("path") as Path;
p.Data = ...
}
连接到Redis服务器时,我收到错误 NOAUTH Authentication ,并运行redis-cli
检查Redis是否正常工作。
我发现answer for NOAUTH Authentication required error描述了此错误仅在Redis设置密码时发生,但我在ping
检查了Redis配置文件并且没有设置密码。
有没有人知道如果有其他设置可能导致此错误?谢谢你的帮助。
p / s:我使用的是Ruby on Rails Web框架,Redis数据库用于Sidekiq。
编辑:Redis版本是2.8.4。服务器托管在AWS上。
目前,我决定为Redis服务器设置密码,以便在运行时无法设置密码。
(重启Redis服务器时,它将正常工作。您可以运行etc/redis/redis.conf
重启Redis服务器。)
答案 0 :(得分:41)
我们也面临类似的问题。看起来有人去扫描AWS并连接到所有公共redis并可能运行“CONFIG SET REQUIREPASS''”,从而锁定正在运行的redis实例。一旦重新启动 redis,配置就会恢复正常。
最好的办法是将AWS安全组策略和阻止端口6379 用于公开。
答案 1 :(得分:3)
我有同样的问题(在AWS上运行)并发现我们的redis端口已暴露。你可能也一样。有人搞乱了。
编辑: 解决方案:reset your redis password然后(假设您将其作为服务运行)重新启动服务providing the new password
答案 2 :(得分:1)
我有同样的问题。之后,我为requirepass
服务器设置了redis
。
并在initializer/redis.rb
$redis = Redis.new(:password=>"****")
工作正常
答案 3 :(得分:1)
在AWS实例上运行Redis时遇到完全相同的问题。我会重新启动redis-server而没有任何密码要求(#requirepass''),可以正常工作几个小时,然后会抛出“NOAUTH Authentication required”,最终将不得不重新启动redis-server。
在AWS中检查了实例的安全组设置,并看到端口6379向公众开放(0.0.0.0/0)。我们限制了端口访问我们唯一需要访问的服务器,从那时起就没有出现问题!
P.S。这是我对StackOverflow的第一次贡献。谢谢你的帮助!
答案 4 :(得分:0)
如果您在配置文件中进行了任何更改,请不要忘记使用sudo service redis-server restart
命令重新启动redis服务。
修改强>
如果您在生产模式下运行redis服务,则redis需要密码才能运行。为此,您需要在/etc/redis
的配置文件中设置密码。
您需要在requirepass *******
部分下的该文件中设置########### SECURITY ############
。
然后重新启动服务器sudo service redis-server restart
。
之后,在您已设置主机名和端口的配置或初始化文件中添加该密码。 例如:
$redis = Redis.new(:host => 'localhost', :port => 6379, :password => "*******")
答案 5 :(得分:0)
我有同样的问题,我发现它是由另一个redis.cnf
配置文件启动redis引起的,所以我停止了redis-server,然后启动redis-server指定配置文件。
redis-server /etc/redis.cnf
然后一切都运转良好。
答案 6 :(得分:0)
你可以试试:auth 'foobared'
应该是配置文件中的默认密码:/etc/redis/redis.conf