Redis 3.2.1从库启动报错"Error condition on socket for SYNC"问题解决一例

redis从库启动报错:

# ./redis-server /data/redis/redis.conf 
8890:S 07 May 13:47:38.592 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.1 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 8890
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               


8885:S 07 May 13:45:12.779 # Server started, Redis version 3.2.1
8885:S 07 May 13:45:12.779 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
8885:S 07 May 13:45:12.780 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
8885:S 07 May 13:45:12.780 * The server is now ready to accept connections on port 6379
8885:S 07 May 13:45:12.780 * Connecting to MASTER 192.168.140.51:6379
8885:S 07 May 13:45:12.780 * MASTER <-> SLAVE sync started
8885:S 07 May 13:45:12.781 * Non blocking connect for SYNC fired the event.
8885:S 07 May 13:45:12.782 # Error condition on socket for SYNC: Connection reset by peer
8885:S 07 May 13:45:13.783 * Connecting to MASTER 192.168.140.51:6379
8885:S 07 May 13:45:13.784 * MASTER <-> SLAVE sync started
8885:S 07 May 13:45:13.784 * Non blocking connect for SYNC fired the event.
8885:S 07 May 13:45:13.785 # Error condition on socket for SYNC: Connection reset by peer
8885:S 07 May 13:45:14.786 * Connecting to MASTER 192.168.140.51:6379
8885:S 07 May 13:45:14.787 * MASTER <-> SLAVE sync started
8885:S 07 May 13:45:14.787 * Non blocking connect for SYNC fired the event.
8885:S 07 May 13:45:14.788 # Error condition on socket for SYNC: Connection reset by peer
8885:S 07 May 13:45:15.789 * Connecting to MASTER 192.168.140.51:6379
8885:S 07 May 13:45:15.790 * MASTER <-> SLAVE sync started
8885:S 07 May 13:45:15.791 * Non blocking connect for SYNC fired the event.
8885:S 07 May 13:45:15.792 # Error reply to PING from master: '-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'
8885:S 07 May 13:45:16.792 * Connecting to MASTER 192.168.140.51:6379




解决方法:
登陆Redis主库:
将bind 127.0.0.1改为bind 0.0.0.0
protected-mode yes改为no


然后重启主库






说明:protected-mode在同时存在如下两种情况时触发:


1) The server is not binding explicitly to a set of addresses using the "bind" directive.


2) No password is configured.