Laravel 5.0升级Predis之后使用密码报错

时间:16-07-15 栏目:Laravel网站建设, PHP开发 作者:kyle 评论:0 点击: 7,527 次

 

 

一直使用Laravel5.0框架,使用Redis做缓存和一些高并发的应用,最后升级了一次,结果报错

`AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

 

我本机装了一个Redis服务端,设置了一个密码,报错信息看出来是密码错了,但是升级之前没有这个问题。于是怀疑可能是predis改了配置,

 

查到官方https://github.com/nrk/predis

发现Release 1.1.1版本说明里面提到

FIX:

1
password

and

1
database

from the global

1
parameters

client option were still being applied to sentinels connections making them fail (sentinels do not understand the

1
AUTH

and

1
SELECT

commands)

 

为了什么安全起见,密码已经改变设置的地方,

 

以前的设置方法是:

 

Laravel框架里,config/database.php里面设置Redis连接信息。

旧版是应该这样设置:

'redis' => [

        'cluster' => false,

        'default' => [
            'host'     => env('REDIS_SERVER', ''),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 0,
            'password'=>env('REDIS_PASS', '')
        ],

    ],

新升级之后有所变动。应该改为:

'redis' => [

        'cluster' => false,

        'default' => [
            'host'     => env('REDIS_SERVER', ''),
            'port'     => env('REDIS_PORT', 6379),
            'database' => 0,
            'parameters'=>[
                'password'=>env('REDIS_PASS', '')
            ]
        ],

    ],

然后到根目录下面的.env里面配好Reids的账号密码,正常连接。

 

截止使用时Laravel也没更新这个Bug。国外找了很久也没找到相关资料,还好自力更生。

 

不明白为什么要把密码设置搞到parameters里面去设置,说是为了安全,也没明白影响在什么地方。也没去深究。反正解决问题了。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: Laravel 5.0升级Predis之后使用密码报错,3Q

Laravel 5.0升级Predis之后使用密码报错:等您坐沙发呢!

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人