在用pm2管理队列的时候。发现queue:work一直启动失败,用pm2 log 看了一下,发现报错:【`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]】
先确认redis是否有密码:
1、cat /etc/redis/redis.conf中确实 requirepass前的注释没有去掉。
2、运行redis-cli,config get requirepass,发现也确实是空
3、运行redis-cli,输入auth xxx ,返回:(error) ERR Client sent AUTH, but no password is set,证明确实没有密码
然后检查代码:
1、.env 文件中是否设置:未设置
2、config/database.php中是否设置:未设置
那这个问题就怪了,不过还是google了一下,发现好象是 predis 的问题。改成这样就OK了:
PHP代码
- 'default' => [
- 'host' => env('REDIS_HOST', '127.0.0.1'),
- 'port' => env('REDIS_PORT', 6379),
- 'database' => env('REDIS_DATABASE', 0),
- 'password' => env('REDIS_PASSWORD', null),
- //以下为新增
- 'parameters'=>[
- 'password'=>env('REDIS_PASSWORD', null)
- ]
- ],
database.php中关于redis那一块,增加 parameters 的数组下标,问题解决。