← Debugging Guides

阅读中文版本

Redis — NOAUTH Authentication required

Fix Redis NOAUTH by configuring credentials and aligning the auth setting between server and client.

beginnerdebuggingredisauth

Symptoms

  • NOAUTH Authentication required
  • Commands fail after enabling a password on the server
  • It worked before a config change on the Redis instance
  • A managed Redis requires a password but the client sends none

Possible causes

  • The server requires a password and the client sends none
  • The client sends the wrong or empty credentials
  • A managed instance requires TLS or a username as well as a password
  • Recent changes to requirepass or ACLs broke an unauthenticated client

Diagnosis steps

Check the server auth requirement

redis-cli -h host -p 6379 PING

Interpretation

If the reply is NOAUTH or an error mentioning auth, the server requires credentials that were not supplied.

Authenticate explicitly to confirm

redis-cli -h host -p 6379 -a <password> PING

Interpretation

A successful PING with credentials confirms the password is correct and the client config is the gap.

Inspect client configuration

grep -rn "redis://\|password\|username" src config

Interpretation

A connection URL without a password, or with the wrong one, explains why the client is unauthenticated.

Root cause

The server required authentication and the client did not present valid credentials, either because none were configured, the password is wrong, or the server now mandates auth that earlier did not.

Fix

Configure the client with the correct credentials, use a connection URL or options that include the username and password, and match the auth mechanism the server requires, including TLS for managed instances.

Verify the fix

Reconnect and issue a command and confirm it succeeds, and confirm the client is using the intended credentials rather than defaults.

Symptom walkthrough

Commands fail with NOAUTH Authentication required, commonly after a password was set on the server or when moving to a managed instance that enforces authentication. The client connects at the TCP level but issues commands without credentials, so the server rejects them. Managed instances frequently also require TLS or a specific username alongside the password.

Fix in practice

Configure the client with the correct credentials, including username and password where the server expects them, and enable TLS if the managed service requires it. Keep the credentials in configuration or secrets rather than code, and verify the client is not silently using defaults.

Verification

Reconnect and issue a command and confirm it succeeds, then check that the client uses the intended credentials. A working command with the right credentials confirms the fix. Rotating credentials through a secret store also avoids stale passwords lingering in configuration files.

Diagnostic commands

Check the behavior with commands like these:

redis-cli -h host -p 6379 PING
redis-cli -h host -p 6379 -a <password> PING
grep -rn "redis://\|password\|username" src config