redis-commander: Error: Ready check failed: NOAUTH Authentication required.

I’m trying to connect to my either my master redis server or slave, which has requirepass configured; the slave can connect to the master with the same password and I was able to use redis-commander before requirepass was configured.

$ redis-commander --redis-host <censored> --redis-password <censored>
No Save: true
listening on  0.0.0.0 : 8081
[Error: Ready check failed: NOAUTH Authentication required.]

Did I miss something?

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 17
  • Comments: 54 (6 by maintainers)

Commits related to this issue

Most upvoted comments

I just have faced the same problem, it’s frustrating. Also I’ve encountered some other issues, for example, if you use more than one db (with dbIndex !== 0) the redis-commander is constantly crashing 😦

I made a fork and have fixed such issues

I’m not sure if there are no issues left, but it works at least.

You’re free to: npm uninstall -g redis-commander npm install -g https://github.com/MegaGM/redis-commander.git

Any update on this issue? None of the solutions above have worked for me…

Since adding “requirepass” – I’ve seen the exact same problem.

This is still not fixed?! This is beyond ridiculous as this is basic and common Redis configuration. This is embarrassing.

Not completely fixed quite yet; loading from the config file seems to still throw the same error.

published v0.4.5

Last version that works for me:

npm install -g redis-commander@0.3.2

Looks like mistake in function, and it should be: redis-commander/bin/redis-commander.js:

function startDefaultConnections (connections, callback) {
  if (connections) {
    connections.forEach(function (connection) {
      var client;
      if( connection.password ){
        client = new Redis(connection.port, connection.host, {password: connection.password});
      } else {
        client = new Redis(connection.port, connection.host);
      }
      client.label = connection.label;
      redisConnections.push(client);
//      if (connection.password) {
//        redisConnections.getLast().auth(connection.password, function (err) {
//          if (err) {
//            return callback(err);
//          }
//        });
//      }
      setUpConnection(redisConnections.getLast(), connection.dbIndex);
    });
  }
  return callback(null);
}

By the way ‘original’ code contains problems with async calls: redisConnections.getLast().auth.

Bueller? 16 days and nothing?

@sseide you’re right, a file named local-development.json has been created under /usr/local/lib/node_modules/redis-commander/config/. That file contains all the connection parameters I put in the command line but the password field that was empty:

{
  "connections": [
    {
      "label": "local",
      "dbIndex": 0,
      "password": "",
      "connectionName": "redis-commander",
      "host": "<my redis database on redislabs.com>",
      "port": "<my redis database port>"
    }
  ]
}

I filled in the password field and then restarted redis-commander without any argument on the command line: it worked, I can browse the database on localhost:8081.

still bombing out

redis_version: 4.0.1 redis_mode: standalone

$ npm list -g --depth=0 | grep redis-commander
└── redis-commander@0.4.5
$ redis-commander --redis-password ... --redis-host ... --redis-port ...
No Save: true
listening on  0.0.0.0 : 8081
Error: Ready check failed: NOAUTH Authentication required
    at /usr/local/lib/node_modules/redis-commander/node_modules/ioredis/lib/redis/event_handler.js:35:27
    at /usr/local/lib/node_modules/redis-commander/node_modules/ioredis/lib/redis.js:375:14
    at tryCatcher (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/util.js:26:23)
    at Promise.errorAdapter (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/nodeify.js:36:34)
    at Promise._settlePromiseAt (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/promise.js:582:21)
    at Promise._settlePromises (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/promise.js:700:14)
    at Async._drainQueue (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues (/usr/local/lib/node_modules/redis-commander/node_modules/bluebird/js/main/async.js:15:14)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)

@joeferner I found it still has the same problem if run redis-commander --redis-password <password> --sentinel-host <host> --sentinel-port <port>

I fixed the issue with the PR https://github.com/joeferner/redis-commander/pull/222

@wernerstucky What environment variables are you using? The new version will need the following variables:

REDIS_PASSWORD REDIS_HOST REDIS_PORT REDIS_DB

I am currently using this version in my kubernetes environment (after dockerizing it) and it is working for me.

New version still not working, used solution from @MegaGM , working well.

Thanks @sertal70 ! Using the --cc flag to clear the configuration file did the trick!

@sertal70 - many thanks, and looking at the code it makes sense. Will have to fix it to be in line with documentation (as this would be expected / normal behaviour i guess).

I created a new ticket for that: #354

@sseide thanks for the clarification on using config file if there are more than one database to be managed that’s crystal clear.

I’m pretty sure my command line was correct, I checked it a couple of times and, as I said before, I used it also to launch redis-browser for double check.

Now I tried again: I deleted the config file then launched redis-commander getting the command line from bash history and… bum! It worked! So why? Having a look to the command history I found that my first attempt has been run without the --redis-password flag, so this is why the local-development.json file has been created with the password field empty. Finally it comes the issue: redis-commander ignored all parameters on the command line (including --redis-password) in any of the subsequent run, taking precedence on the local-development.json file (the exact opposite of what the documentation reports: “Command line parameters - Overwrites everything”).

Reproducing the issue is quite simple:

  1. delete local-development.json config file, if any
  2. launch redis-commander with the command line: redis-commander --redis-host <myhost> --redis-port <myport>
  3. you get the error NOAUTH
  4. check that the local-development.json config file has been created with the password field empty
  5. launch again redis-commander with the command line: redis-commander --redis-host <myhost> --redis-port <myport> --redis-password <mypassword>
  6. you get the error NOAUTH

Hope it helps!

When using version from npm - this had no updates since long time. Please try latest from github or docker image.

Otherwise - what exact problem do you face? this thread describes multiple different ones… We are using redis-commander with password protected db without any problem…

Cleaning the config file as suggested by @khoan solved the problem for me.

$ rm ~/.redis-commander
$ redis-commander <your_options>