场景:需要使用rdm工具链接远程的rdis服务,但是一直链接失败
解决方法
问题一般是配置文件和防火墙导致的。
检查配置
1.查看redis服务是否启动,如图所示,redis已经启动
2:查看是否监听正确的ip和端口
发现问题:端口号6379没错,但是ip是127.0.0.1,表示只能本地访问,问题就出在这。
3.修改redis配置文件,将bind 127.0.0.1改为0.0.0.0
重新启动redis 。如图所示
在window使用telnet ip 6379 测试 ,如果还是不通
关闭防火墙
1、 查看firwwall状态
systemctl status firewalld
或者
firewall-cmd --state
关闭防火墙
systemctl stop firewalld
在window端
发现有效果了,但是提示 mode ,还是不通,解决方法
修改配置文件redis.conf 如图 yes 修改成no 然后重启redis服务
protected-mode no
这个地方也可以不修改成no 添加一个密码
如图所示
pkill redis
重启服务
再次测试基本通了
telnet ip 6379
----------------------------------------------------------------------------------------------
2:如果是防火墙导致端口不通,关闭防火墙和selinux,或者单独开放6379端口
解决方程(开放6379端口)
1、 查看firwwall状态
systemctl status firewalld
或者
firewall-cmd --state
2、添加端口
(1)、直接添加
firewall-cmd --zone=public --permanent --add-port=6379/tcp
(2)、添加访问规则
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address=" 192.168.*.*" port protocol="tcp" port="6379" accept"
3、防火墙重新载入
firewall-cmd --reload
4、查看防火墙规则
firewall-cmd --list-all
三:redis设置密码
方法一:通过配置文件redis.conf设置密码
找到requirepass关键字,后面就是跟的密码,默认情况下是注释掉的,即默认不需要密码,如下:
打开注释,设置为自己的密码,重启
方法二:通过命名设置密码
使用redis-cli连接上redis,执行如下命令
config set requirepass 123456
执行完毕,无需重启,退出客户端,重新登录就需要输入密码了
二、连接方法
1、连接时输入密码
[root@localhost bin]# ./redis-cli -a 123456
2、先连接再输入密码
[root@localhost bin]# ./redis-cli 127.0.0.1:6379> auth 123456
三、关闭方法
[root@localhost bin]# ./redis-cli -a 123456 shutdown
四、区别
1)修改配置文件设置的密码永久生效;使用命令设置的密码临时生效,重启后失效
2)修改配置文件设置的密码,需要重启生效;使用命令设置的密码,退出后再登录生效,重启后失效
3)命令的优先级高于配置文件的优先级