import redis
r=redis.Redis(host='192.168.56.102',port=6379,db=0,password='jinxfredis' )
r.set('name','jin')
print(r.get('name'))
Python远程连接Redis时报如下错误:
DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface.
If you want to connect from external computers to Redis you may adopt one of the following solutions:
1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent.
2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option.
4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.
拒绝的Redis在保护模式下运行,因为保护模式是启用的,没有指定绑定地址,没有向客户端请求身份验证密码。在这种模式下,连接只能从环回接口接受。如果你想从外部计算机连接到复述,你可能采取的解决方案:
1)只是禁用保护模式发送命令的配置设置保护模式没有从loopback接口连接到复述同一主机服务器正在运行,然而确保复述,不是公开从互联网访问如果你这样做。使用配置重写使此更改永久存在。
2)也可以通过编辑Redis配置文件,将protected模式选项设置为no,然后重新启动服务器,从而禁用protected模式。
3)如果您只是为了测试而手动启动服务器,那么使用“—保护模式no”选项重新启动服务器。
4)设置绑定地址或身份验证密码。注意:为了让服务器开始接受来自外部的连接,您只需要做上述的一件事。
按照上面2-4设置后,
bind 0.0.0.0
protected-mode no
requirepass password
从新启动Redis,还是报相同的错误。。。
原来Redis不指定配置文件,就按照默认的设置启动,所以重新启动Redis时,设置指定的配置文件,远程就可以正常访问了
[root@localhost ~]# redis-server redis-3.2/redis.conf