> 文档中心 > python 连接 Linux 的 redis 报错 (redis.exceptions.ConnectionError: Error 10061 ...由于目标计算机积极拒绝,无法连接)

python 连接 Linux 的 redis 报错 (redis.exceptions.ConnectionError: Error 10061 ...由于目标计算机积极拒绝,无法连接)

文章目录

未指定IP地址报错

😑

我的报错如下:

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:\wjpythonwj\redis_1.py”, line 21, in
result = rs.set(‘name’,‘itcast’)
File “D:\python3\lib\site-packages\redis\commands\core.py”, line 2127, in set
return self.execute_command(“SET”, *pieces, options)
File “D:\python3\lib\site-packages\redis\client.py”, line 1215, in execute_command
conn = self.connection or pool.get_connection(command_name, options)
File “D:\python3\lib\site-packages\redis\connection.py”, line 1386, in get_connection
connection.connect()
File “D:\python3\lib\site-packages\redis\connection.py”, line 620, in connect
raise ConnectionError(self._error_message(e)) redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379. 由于目标计算机积极拒绝,无法连接。.

在这里插入图片描述

👽学会看报错信息非常重要,我恰恰忽略了最后一句redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379. 由于目标计算机积极拒绝,无法连接

报错信息显示: 拒绝连接localhost:6379
此时应该使用ip add 查看Linux的IP地址和端口号(本地虚拟机VMware是虚拟出来的一层设备,与127.0.0.1有区别!!!)

[root@localhost /]# ip add1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever    inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens33:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:ad:7b:f0 brd ff:ff:ff:ff:ff:ff    inet 192.168.153.133/24 brd 192.168.153.255 scope global noprefixroute dynamic ens33valid_lft 1699sec preferred_lft 1699sec    inet6 fe80::2b7f:aef3:82b:78e3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft forever    inet6 fe80::cf5a:4e51:97df:a48/64 scope link noprefixroute valid_lft forever preferred_lft forever

画重点:IP地址是192.168.153.133

👏所以python(pycharm)连接Linux中的redis时需要指定IP地址为192.168.153.133

# encoding=utf-8import redisif __name__=="__main__":    ip='192.168.153.133'    #创建redis的连接实例    #我们在连接/花费外界资源的时候一定要注意使用try    try: rs=redis.Redis(host=ip,port=6379)  #如果连接的是云服务器也可以不指定IP和端口    except Exception as e: print(e)    #操作string    #添加set key value    result = rs.set('name','itcast')    print(result)

连接线程池代码

import  redisip = '192.168.153.133'conn_pool = redis.ConnectionPool(host=ip, port=6379)r = redis.Redis(connection_pool=conn_pool)r.set('name','zjh')print(r.get('name'))   #b'zjh'

未修改redis.conf报错

vim /etc/redis/redis.conf #找到自己目录下的redis.conf

vim查找指定内容:/ 要寻找的内容

1、接触本地IP的绑定 bind
在这里插入图片描述
2、关闭保护模式protected-mode (把默认的yes改为no)
python 连接 Linux 的 redis 报错 (redis.exceptions.ConnectionError: Error 10061 ...由于目标计算机积极拒绝,无法连接)

防火墙问题,未开放6379端口号

1、设置开启某个端口(不拦截redis的6379端口)

firewall-cmd --zone=public --add-port=6379/tcp --permanentfirewall-cmd --zone=public --add-port=80/tcp --permanent

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

2、重启防火墙

firewall-cmd --reload

防火墙其他常用命令

firewall-cmd --state     #查看防火墙状态,是否是runningfirewall-cmd --reload    #重新载入配置,比如添加规则之后,需要执行此命令firewall-cmd --get-zones #列出支持的zonefirewall-cmd --get-services     #列出支持的服务,在列表中的服务是放行的firewall-cmd --query-service ftp#查看ftp服务是否支持,返回yes或者nofirewall-cmd --add-service=ftp  #临时开放ftp服务firewall-cmd --add-service=ftp --permanent    #永久开放ftp服务firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务firewall-cmd --add-port=80/tcp --permanent    #永久添加80端口 iptables -L -n    #查看规则,这个命令是和iptables的相同的man firewall-cmd  #查看帮助systemctl stop firewalld.service#停止firewallsystemctl disable firewalld.service    #禁止firewall开机启动更多命令,使用 firewall-cmd --help 查看帮助文件

重启redis

[root@localhost redis]# redis-server redis.conf[root@localhost ~]# redis-server /etc/redis/redis.conf  #在其他目录指定启动redis.conf[root@localhost redis]# redis-cli    #连接redisctrl+c退出!!

松山湖人才网