J'ai une erreur Authentification NOAUTH requise lorsque je me connecte au serveur Redis via la commande: redis-cli
et exécutez ping
pour vérifier si Redis fonctionne.
J'ai trouvé réponse à l'erreur NOAUTH Authentication required qui décrit que cette erreur ne se produit que lorsque Redis a défini un mot de passe, mais j'ai vérifié le fichier de configuration Redis à etc/redis/redis.conf
et aucun mot de passe n'est défini.
Est-ce que quelqu'un sait que s'il y a d'autres paramètres qui peuvent provoquer cette erreur? Merci pour toute aide.
p/s: J'utilise Ruby on Rails framework web, la base de données Redis est utilisée pour Sidekiq.
Modifié: la version Redis est 2.8.4. Le serveur est hébergé sur AWS.
Actuellement, j'ai décidé de définir un mot de passe pour le serveur Redis afin qu'il ne puisse pas être défini lors de son exécution.
(Lorsque le serveur Redis est redémarré, cela fonctionnera normalement. Vous pouvez exécuter Sudo service redis-server restart
pour redémarrer le serveur Redis.)
Nous avons également été confrontés à un problème similaire. On dirait que quelqu'un a analysé AWS et s'est connecté à tous les redis publics et a peut-être exécuté "CONFIG SET REQUIREPASS '" ", verrouillant ainsi l'instance en cours d'exécution de redis. Une fois que vous redémarrez le redis, la configuration est restaurée à la normale.
La meilleure chose serait d'utiliser la stratégie de groupe de sécurité AWS et bloquer le port 6379 pour le public.
J'ai eu le même problème (fonctionnant sur AWS) et j'ai découvert que notre port redis était exposé. Vous avez probablement eu la même chose. Quelqu'un déconnait.
EDIT: La solution: réinitialiser votre mot de passe redis puis (en supposant que vous l'exécutez en tant que service) redémarrez le service en fournissant le nouveau mot de passe
A eu exactement le même problème lors de l'exécution de Redis sur une instance AWS. Je redémarrerais redis-server sans aucun mot de passe (#requirepass ''), fonctionnerais bien pendant quelques heures, puis lancerais "NOAUTH Authentication required" et finirais par devoir redémarrer redis-server.
Vérifié les paramètres des groupes de sécurité dans AWS pour l'instance et vu le port 6379 ouvert au public (0.0.0.0/0). Nous avons limité l'accès au port à notre seul serveur qui doit y accéder et nous n'avons plus vu le problème depuis!
P.S. Il s'agit de ma toute première contribution à StackOverflow. Merci pour l'aide!
J'ai le même problème. après cela, je suis défini requirepass
pour le serveur redis
.
Et ajoutez ce mot de passe dans initializer/redis.rb
$redis = Redis.new(:password=>"****")
Ça fonctionne bien
J'ai le même problème, j'ai trouvé que c'était causé par quelqu'un qui avait commencé à redis par un autre redis.cnf
fichier de configuration, j'ai donc arrêté redis-server puis démarré redis-server spécifiez un fichier de configuration.
redis-server /etc/redis.cnf
Ensuite, tout fonctionne bien.
Si vous avez apporté des modifications au fichier de configuration, n'oubliez pas de redémarrer le service redis avec la commande Sudo service redis-server restart
.
Edit: Si vous exécutez le service redis en mode production, alors redis nécessite un mot de passe pour s'exécuter. Pour cela, vous devez définir un mot de passe dans votre fichier de configuration présent dans /etc/redis
.
Vous devez définir requirepass *******
Dans ce fichier sous la section ########### SECURITY ############
.
Redémarrez ensuite votre serveur Sudo service redis-server restart
.
Après cela, ajoutez ce mot de passe dans votre fichier de configuration ou d'initialisation où vous avez défini votre nom d'hôte et votre port. Exemple:
$redis = Redis.new(:Host => 'localhost', :port => 6379, :password => "*******")