redis不要以root权限启动(linux)
前言
redis默认启动方法都是以root启动的,不安全,现在创建一个新的用户来启动。
1 新增用户
1.1 新增用户组(redisgroup)
执行:groupadd redisgroup
1.1 新建用户(redisuser)并加入(redisgroup)组中,并禁止登录
执行:useradd -M redisuser -g redisgroup -s /sbin/nologin
2 redis 启动
执行:sudo -u redisuser /home/redis-7.4.1/src/redis-server /home/redis-7.4.1/7001.conf
如果出现:sudo : command not found 则sudo的在线安装执行:yum install sudo
redis 关闭
执行:/home/redis-7.4.1/src/redis-cli -p 7001 -a redis密码 shutdown
2 修改开机启动文件
2.1 方法一:修改 /etc/rc.local 文件
执行:vim /etc/rc.local
最下面增加
sudo -u redisuser /home/redis-7.4.1/src/redis-server /home/redis-7.4.1/7001.conf
退出赋权限
chmod +x /etc/rc.local
2.2 方法二:添加开机启动服务(推荐)
vi /etc/systemd/system/redis.service
######## 写入内容
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
User=redisuser # 添加用户
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
修改redis.service文件后可能有提示:Run ‘systemctl daemon-reload’ to reload units.
解决方法:执行 systemctl daemon-reload 就可以了
3 重新启动redis
systemctl start redis.service ## 启动redis服务
systemctl stop redis.service ## 停止redis服务
systemctl restart redis.service ## 重启redis服务
systemctl status redis.service ## 查看redis服务当前状态
4 其他
后面又碰到redis报错
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.
修改 redis.conf 文件配置
快速定位 /stop-writes-on-bgsave-error
stop-writes-on-bgsave-error 将yes改成no
redis-cli -p 7001 -a redis密码 shutdown 执行报错:
Failed opening the temp RDB file temp-16831.rdb (in server root dir /home/redis-7.4.1) for saving: Permission denied
16831:M 08 Nov 2024 18:50:41.010 # Error trying to save the DB, can’t exit.
16831:M 08 Nov 2024 18:50:41.010 # Errors trying to shut down the server. Check the logs for more information.
解决:打开redis.conf,找到 dir ./ 设置成自己的路径(随便你设置,这路径,但是要合理) 这里设置为 dir /home/redis-7.4.1/myRedis/ myRedis需要自己手动创建,并赋予权限:chmod -R 777 myRedis/
dir /home/redis-7.4.1/myRedis/