Ошибка Redis: NOAUTH Требуется аутентификация, но пароль не установлен
У меня возникла ошибка Требуется проверка подлинности NOAUTH при подключении к серверу Redis через команду: redis-cli
и запустить ping
, чтобы проверить, работает ли Redis.
Я нашел ответ на требуемую ошибку NOAUTH Authentication, которая описывает, что эта ошибка возникает только тогда, когда Redis установлен пароль, но я проверил конфигурационный файл Redis на etc/redis/redis.conf
и пароль не установлен.
![Redis config]()
Кто-нибудь знает, что, если есть другие настройки, которые могут вызвать эту ошибку? Спасибо за любую помощь.
p/s: Я использую веб-инфраструктуру Ruby on Rails, база данных Redis используется для Sidekiq.
Отредактировано: Версия Redis - 2.8.4. Сервер размещен на AWS.
В настоящее время я решил установить пароль для сервера Redis, чтобы он не мог установить пароль при его запуске.
(Когда сервер Redis перезагружен, он будет работать нормально. Вы можете запустить sudo service redis-server restart
, чтобы перезапустить сервер Redis.)
Ответы
Ответ 1
Мы также столкнулись с аналогичной проблемой. Похоже, что кто-то пошел и отсканировал AWS и подключился ко всем публичным redis и, возможно, запустил "CONFIG SET REQUIREPASS" ", тем самым заблокировав исполняемый экземпляр redis. После того как вы перезапустите redis, конфигурация будет восстановлена в обычном режиме.
Лучше всего было бы использовать политику группы безопасности AWS и block port 6379 для публики.
Ответ 2
У меня была такая же проблема (работает на AWS), и наш портал был открыт. Вероятно, у вас было то же самое. Кто-то возился.
EDIT:
Решение: reset ваш пароль для повторного использования, а затем (при условии, что он запущен как служба) перезапустите службу указав новый пароль
Ответ 3
У меня такая же проблема. после этого я установлен requirepass
для сервера redis
.
И добавьте этот пароль в initializer/redis.rb
$redis = Redis.new(:password=>"****")
Он отлично работает
Ответ 4
Была ли та же проблема, что и Redis на экземпляре AWS. Я бы перезапустил redis-server без каких-либо требований к паролю (#requirepass ''), будет работать нормально в течение нескольких часов, а затем выбросит "NOAUTH Authentication required" и в конечном итоге придется перезапустить redis-сервер.
Проверьте настройки групп безопасности в AWS для экземпляра, а порт 6379 - открытый для публики (0.0.0.0/0). Мы ограничили доступ порта к нашему единственному серверу, который должен получить доступ и не видел, чтобы проблема возникала с тех пор!
P.S. Это мой первый вклад в StackOverflow. Спасибо за помощь!
Ответ 5
Если вы внесли какие-либо изменения в файл конфигурации, не забудьте перезапустить службу redis с помощью команды sudo service redis-server restart
.
Edit:
Если вы используете redis-сервис в рабочем режиме, redis требует, чтобы пароль запускался. Для этого вам нужно установить пароль в вашем файле конфигурации в /etc/redis
.
Вам нужно установить requirepass *******
в этот файл в разделе ########### SECURITY ############
.
Затем перезагрузите сервер sudo service redis-server restart
.
После этого добавьте этот пароль в свой файл конфигурации или инициализации, где вы установили имя хоста и порт.
Пример:
$redis = Redis.new(:host => 'localhost', :port => 6379, :password => "*******")
Ответ 6
У меня такая же проблема, я обнаружил, что это вызвано тем, что кто-то начал redis с помощью другого файла конфигурации redis.cnf
, поэтому я остановил redis-server, а затем начал redis-server указать файл конфигурации.
redis-server /etc/redis.cnf
Тогда все прекрасно работает.