GVKun编程网logo

linux redis哨兵 mysql主从关系 等等(redis哨兵和主从)

23

本文的目的是介绍linuxredis哨兵mysql主从关系等等的详细情况,特别关注redis哨兵和主从的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解linuxred

本文的目的是介绍linux redis哨兵 mysql主从关系 等等的详细情况,特别关注redis哨兵和主从的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解linux redis哨兵 mysql主从关系 等等的机会,同时也不会遗漏关于Linux - redis哨兵集群实例、linux 7 redis 4.0.11 主从复制及哨兵模式、linux centos 7安装redis并且配置主从复制和哨兵模式。一主二从三哨兵、Linux MySQL主从同步失败,报错1594的解决方法_MySQL的知识。

本文目录一览:

linux redis哨兵 mysql主从关系 等等(redis哨兵和主从)

linux redis哨兵 mysql主从关系 等等(redis哨兵和主从)

centos7 安装 mariadb

1 yum 源  -- 配置阿里的 (da)

2 rmp 方式

3 源码编译方式  -- 专业DBA

 

 

虚拟环境 不影响 Redis/ mariadb

rmp  -q  mariadb  检测有没装  只能检测通过yum安装的

先workon 虚拟环境,在这个里面打开项目

配置 官方源

1 引入 yum 仓   /etc/yum.repos.d/目录下
手动创建一个 mariadb.repo
写入如下内容
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2.此时通过yum安装的软件,都是mariadb官方的了
 之后 yum install mariadb-server mariadb  大约103M

3  启动  systemctl start mariadb   服务端
    MysqL  -uroot  -p  默认没密码
4  初始化  会有匿名用户
  MysqL_secure_installation
5 修改数据库编码 (\s 直接查看编码信息)
  show create database zc; 查看创建库时候的编码问题

修改编码问题 -- vim /etc/my.cnf

复制代码
[MysqLd] 服务端
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/MysqLd.log
[client]   客户端
default-character-set=utf8
[MysqL]
default-character-set=utf8

6 远程连接数据库

  创建普通用户 -- create user 用户名@‘%‘ identified by ‘密码‘;  任何地方都能登录

#对用户授权,给予root用户远程登录的权限

#给予root权限,所有的权限,并且可以远程登录  --下面是指令  

grant all privileges on *.* to [email protected]"%" identified by "redhat";

#立即刷新授权表   flush privileges;

数据库备份与恢复
MysqLdump 命令用于备份数据库操作:

1.命令
MysqLdump -u root -p --all-databases > /tmp/db.dump
指定ace_crm数据库导出
MysqLdump -uroot -p --database ace_crm > /tmp/ace_crm.dump

#参数 --all-databases 导出所有的数据库

 
 

2.导入数据库信息
MysqL -uroot -p < /tmp/db.dump    Windows --> linux

 
 

#导入数据方式2:  MariaDB [(none)]> source /tmp/db.dump

MysqL 主从复制

环境准备  :  一主一从  

Linux - redis哨兵集群实例

Linux - redis哨兵集群实例

[TOC]

Linux - redis哨兵集群实例

命令整理

官网地址:http://redisdoc.com/

redis-cli info #查看redis数据库信息

redis-cli info replication #查看redis的复制授权信息

redis-cli info sentinel   #查看redis的哨兵信息

配置流程

思路:

redis主从

一主两从的方案

1.环境准备,准备一主两从的redis架构

redis-6379.conf

port 6379

daemonize yes

logfile "6379.log"

dbfilename "dump-6379.rdb"

dir "/opt/redis/6379/"

redis-6380.conf

port 6380

daemonize yes

logfile "6380.log"

dbfilename "dump-6380.rdb"

dir "/opt/redis/6380/"

slaveof  127.0.0.1  6379

redis-6381.conf

port 6381

daemonize yes

logfile "6381.log"

dbfilename "dump-6381.rdb"

dir "/opt/redis/6381/"

slaveof  127.0.0.1  6379

2.准备三个数据文件夹

mkdir -p  /opt/redis/{6379,6380,6381}

3。分别启动三个数据库

[root@master sbredis]# redis-server redis-6379.conf 

[root@master sbredis]# redis-server redis-6380.conf 

[root@master sbredis]# redis-server redis-6381.conf 

4.检测主从状态

redis-cli -p 6379   info replication

redis-cli -p 6380   info replication

redis-cli -p 6381   info replication

5.准备三个redis哨兵,进行检测主从状态

准备三个哨兵的配置文件

redis-26379.conf

// Sentinel节点的端口
port 26379  
dir /var/redis/data/
logfile "26379.log"

// 当前Sentinel节点监控 192.168.119.10:6379 这个主节点
// 2代表判断主节点失败至少需要2个Sentinel节点节点同意
// mymaster是主节点的别名
sentinel monitor mymaster 192.168.119.10 6379 2

//每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定不可达
sentinel down-after-milliseconds mymaster 30000

//当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel parallel-syncs mymaster 1

//故障转移超时时间为180000毫秒
sentinel failover-timeout mymaster 180000

redis-26380.conf

port 7000

daemonize yes

dir "/opt/data"

logfile "7000.log"

dbfilename "dump-7000.rdb"

cluster-enabled yes   

cluster-config-file nodes-7000.conf

cluster-require-full-coverage no

redis-26381.conf

三个配置文件,仅仅是端口的不同,通过命令快速生成配置文件

[root@master sbredis]# sed "s/26379/26380/g"  redis-26379.conf   >  redis-26380.conf  

[root@master sbredis]# sed "s/26379/26381/g"  redis-26379.conf   >  redis-26381.conf  

6.分别启动三个哨兵

[root@master sbredis]# redis-sentinel redis-26379.conf 

[root@master sbredis]# redis-sentinel redis-26380.conf 

[root@master sbredis]# redis-sentinel redis-26381.conf 

7.检测哨兵,主从状态

redis-cli -p 26379  info sentinel

看到如下信息,就和我一样了

[root@master sbredis]# redis-cli -p 26379  info  sentinel

Sentinel

sentinel_masters:1

sentinel_tilt:0

sentinel_running_scripts:0

sentinel_scripts_queue_length:0

sentinel_simulate_failure_flags:0

master0:name=s17ms,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

8.测验,干掉master redis,是否自动切换

    ps -ef|grep redis
    kill 进程
    ..

9.再次启动redis 6379 查看它是否加入 主从集群

redis-server redis-6379.conf

OK~

linux 7 redis 4.0.11 主从复制及哨兵模式

linux 7 redis 4.0.11 主从复制及哨兵模式

 

 

在这里本人的三台机器为

192.168.163.129 (主)
192.168.163.130   (从)
192.168.163.131 (从)

一、将下载好的 redis 版本包上传至服务器

yum -y install gcc automake autoconf libtool make (这里主要的是 gcc)

解压上传的包,并指定路径存放,本文存放为 /usr/local/ 下,可以将解压出来的包改个名,redis-4.0.11 改为 redis

进入 redis 目录下 make && make install (编译安装)

在 redis 目录下 src 目录里有三个文件 redis-cli redis-server redis-sentinel 可以移动到 redis 目录下(启动服务时方便)

主从和哨兵模式主要的配置文件就两个 redis.conf (主从的配置文件) sentinel.conf (哨兵模式的配置文件) 三台机器的这两个文件都要配置


二、首先: 配置主从模式 (这里先配置两台从的)

vim redis-conf

bind 0.0.0.0 (不管之前配置的是啥,都改为这个参数,有注释的就将注释符注销 0.0.0.0 表示允许任何 IP 连接此服务器)
slaveof 192.168.163.129 6379 (标明主的 ip 和端口)
protected-mode no (把保护模式设置为 no,如果这里是 yes,那么修改为 no)
port 6379 (端口号 6379 保持不变)
daemonize yes (这里设置 yes 有的博客设置 no,你会发现服务起不来)
logfile "/usr/local/redis/redis.log" (路径最好也放在这,本主放在其他位置也报错)
requirepass abcdefg (密码自定义,但是三台机器要一致)

masterauth (主的密码,此项为密码验证,如不填主从会不同步)

wq (保存退出)

在 /usr/local/redis/redis/ 下,执行 nohup redis-server redis.conf >myout.file 2>&1 &

配置主的方法同上,只不过 redis.conf 中不需要配置 slaveof 这项。然后也启动服务,方法同上。

进行查看是否同步成功,在主上操作

redis-cli

> auth abcdefg
> set name kk
然后在从上查询

redis-cli
> auth abcdefg
> get name
''kk''
说明配置主从成功,如有不通请关闭防火墙或者 selinux

三、接下来配置哨兵模式 三台机器还是一样 ,配置 sentinel.conf ,配置过后重启。

vim sentinel.conf

bind 0.0.0.0
port 26379
protected-mode no
# Generated by CONFIG REWRITE
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.163.129 6379 2 (主的 ip 和端口)
sentinel down-after-milliseconds mymaster 60000
sentinel auth-pass mymaster abcdefg
sentinel config-epoch mymaster 2528
sentinel leader-epoch mymaster 2529
sentinel known-slave mymaster 192.168.163.130 6379 (从的 ip 和端口)
sentinel known-slave mymaster 192.168.163.131 6379(从的 ip 和端口)
sentinel known-sentinel mymaster 192.168.163.129 26379
sentinel current-epoch 2529

wq

启动哨兵服务 在 /usr/local/redis/redis/ 下,nohup redis-sentinel sentinel.conf >myout.file 2>&1 & (这条语句是将命令放到后台执行)

查看 ps -ef | grep redis

root 5818 1 0 09:30 ? 00:01:29 redis-server 0.0.0.0:6379
root 6138 2319 0 10:50 pts/0 00:01:36 redis-sentinel *:26379 [sentinel]
root 6825 6667 0 13:53 pts/1 00:00:00 grep --color=auto redis

启动成功

四、这时我们测试下,在主上进行

kill -9 5818 (关掉 redis 进程)

然后看在两个从上是否选举出新的主,在从上执行

redis-cli
> auth abcdefg
> info

# Replication
role:master
connected_slaves:1
slave0:ip=192.168.163.130,port=6379,state=online,offset=370877,lag=0
master_replid:98aa0e1b122df167386398d83155fff94c404368
master_replid2:a129e74f75f68e683915b4f7ee3ea5236874da78
master_repl_offset:370877
second_repl_offset:243123
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:370877

说明选举成功。
如果这两个文件配置的没有问题,基本上都能搭建成功,如果配置文件里没有以上配置,可以在配置文件里写进去。注意:配置所有 redis.conf 的文件,都要配置 masterauth (密码验证)。

linux centos 7安装redis并且配置主从复制和哨兵模式。一主二从三哨兵

linux centos 7安装redis并且配置主从复制和哨兵模式。一主二从三哨兵

1、VMware准备三台虚拟机(不会安装的自行百度,再次不做赘述),我的配置如图。三台虚拟机(centos 7),IP分别为192.168.124.19,192.168.124.20,192.168.124.21,其中20作为master(主服务器)。19和21为slave(从服务器)。主服务器可以读写,从服务器只读不能写。三台服务器上分别安装redis,我的redis版本为4.0.11

tar xzvf redis-4.0.11.tar.gz

cd redis-4.0.11

make

make install

安装gcc 
yum -y install gcc automake autoconf libtool make

 

2、redis安装好了之后,三台服务器分别把相关的文件拷贝到/usr/redis目录下。先新建此目录,然后在redis安装目录下的src目录下面复制redis-server、redis-cli、redis-benchmark三个文件到/usr/redis。再从redis安装目录下复制redis.conf、sentinel.conf两个文件到/usr/redis目录下面。复制完之后,/usr/redis文件夹目录如下,只有这5个文件

3、进入到/usr/redis目录,修改两个从服务器(也就是192.168.124.19,192.168.124.21这两个)的redis.conf文件

# bind 127.0.0.1   #把这一行注释掉
protected-mode no # 把保护模式设置为no,如果这里是yes,那么修改为no
port 6379 #端口号6379保持不变
daemonize no #这里修改为no,表示redis服务可以后台运行
slaveof 192.168.124.20 6379 #由于是从服务器,所以要配置其主服务器,配置格式:
slaveof 主IP 主端口号

 

4、修改主服务器(192.168.124.20)的redis.conf文件,因为是主服务器,所以不配置slaveof,其他相同

# bind 127.0.0.1   #把这一行注释掉
protected-mode no # 把保护模式设置为no,如果这里是yes,那么修改为no
port 6379  #端口号6379保持不变
daemonize no  #这里修改为no,表示redis服务可以后台运行

 

5、关于redis的其他配置可以参考这个博客 https://www.cnblogs.com/zxtceq/p/7676911.html

6、修改完了配置之后,可以挨个启动redis服务。这里启动一点要带上redis.conf,否则的话,redis会用默认配置,那刚才配置的就没用了,所以要带上redis.conf

redis-server redis.conf

 

这时候三个服务器的redis服务就已经全部启动了,可以用info命令查看redis信息

redis-cli info

 

先看主服务器192.168.124.20,如图。可以看到角色role是master,也就是主服务器,有两个slave,slave0和slave1,说明配置正确

再看从服务器的信息info,在从服务器上执行redis-cli info命令,如图。可以看到角色role是slave,也就是从服务器。master_link_status:up这说明主服务状态正在运行,这里如果为down,那可能是主机的防火墙的原因,可以关闭防火墙,systemctl stop firewalld

7、试一试redis的读写,在主服务器上面可以写,也就是set,在20上面执行,可以读可以写

在从服务器上,19上面,可以看到没有写的权限,只有读的权限。可以在 主服务器上面写,然后在从服务器上面读取

8、到此,redis的主从复制已经搭建完成,然后再搞一下哨兵。其实哨兵也就是一个进程,用来监视这个redis集群。这里遵从一主二从三哨兵模式。这里有三台主机192.168.124.19,192.168.124.20,192.168.124.21,可以在这上面分别启动一个哨兵进程。注意:哨兵进程和redis进程没有关系,可以在一台主机上面启动。(最开始学这里的时候我也是懵逼的,后来懂的),还记得开始的时候拷贝的几个文件么,其中有一个就是sentinel.conf ,这个文件就是哨兵的配置文件。三个哨兵监控这个redis集群,如果主服务器挂了,那么三个哨兵就从从服务器里选一台作为主服务器,选举机制一会在配置文件里面表明。

9、三台服务器上的哨兵配置相同的,这里写一个,其他两个都一样的,修改配置文件sentinel.conf

protected-mode no  #关闭保护模式

port 26379  #端口号

dir "/tmp"   #目录

sentinel parallel-syncs mymaster 1 #故障迁移的时候,复制的从服务器的个数

sentinel failover-timeout mymaster 180000 #故障迁移所需时间,也就是主服务器挂了之后,选举新服务器的时间,如果这个时间还没能选举出来,那么就算选举失败

sentinel deny-scripts-reconfig yes sentinel monitor mymaster
192.168.124.20 6379 2 #这个是指哨兵监视哪个redis集群,这里监视的是192.168.124.20,6379是端口号,最后的2表示,如果主服务器挂了,3个哨兵中有2个投票选新的服务器,那么就可以进行故障迁移,选出了新的服务器 sentinel down-after-milliseconds mymaster 3000 #sentinel认为“主线下线”的一个阀值。

 

 10、挨个启动哨兵模式,哨兵之间也是相互监控的

redis-server sentinel.conf --sentinel &

 

 11、这是,哨兵模式就已经启动了,这时候就可以监视redis集群了,如果主服务器挂了之后就可进行故障转移了,现在模拟主服务器挂掉,在20上执行,redis-cli shutdown,手动挂掉主服务器,如图

可以看到,+switch,选了一个新的主服务器,也就是19.这时候看一看19的信息info如图,19role为master,有一个从服务器21

试一试写操作,是可以的

看一看21的info,主服务器变为19

12、再重新启动挂掉的20,之后再看看19的info,有两个slave,20和21.很成功。nice

 

 

 

Linux

安装完redis单独用命令:

redis-server
报错:

-bash: redis-server: command not found
说明redis-server不是全局命令,那么假如到全局即可:

 假如我的redis安装路径是:/home/prod/redis/redis-4.0.8

ln -s /home/prod/redis/redis-4.0.8/src/redis-server /usr/bin/redis-server
将
redis-server
放到/usr/bin下即可(相当于创建一个全局快捷方式)
--------------------- 
作者:Mr.True 
来源:CSDN 
原文:https://blog.csdn.net/q258523454/article/details/81012518 
版权声明:本文为博主原创文章,转载请附上博文链接!

  

 

 

 

 

Linux MySQL主从同步失败,报错1594的解决方法_MySQL

Linux MySQL主从同步失败,报错1594的解决方法_MySQL

bitsCN.com
mysql 的主从同步挂了,从日志中报的错如下:120309 18:39:23 [Note] Slave SQL thread initialized, starting replication in log ''mysql-bin.000004'' at position 2207467, relay log ''./mysqld-relay-bin.000011'' position: 2207613 120309 18:39:23 [ERROR] Error in Log_event::read_log_event(): ''read error'', data_len: 166, event_type: 2120309 18:39:23 [ERROR] Error reading relay log event: slave SQL thread aborted because of I/O error120309 18:39:23 [ERROR] Slave SQL: Relay log read failure: Could not parse relay log event entry. The possible reasons are:     the master''s binary log is corrupted (you can check this by running ''mysqlbinlog'' on the binary log),     the slave''s relay log is corrupted (you can check this by running ''mysqlbinlog'' on the relay log),  a network problem, or a bug in the master''s or slave''s MySQL code. If you want to check the master''s binary log or slave''s relay log, you will be able to know their names by issuing ''SHOW SLAVE STATUS'' on this slave. Error_code: 1594120309 18:39:23 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log ''mysql-bin.000004'' position 2207467

分析主要原因是因为断电,所以引起读 binlog 出错,根据网上一些资料,修复的方法是: 1 stop slave; 2 change master to3  master_host=''192.168.1.251'', 4 master_user=''repl'', 5  master_password=''password'', 6  master_log_file=''mysql-bin.000004'', 7  master_log_pos=2207467; 8 start slave;这样就修复 OK 了.上面的同步文件和同步点 pos 是日志中报错上次记录的位置.   作者 php-oa bitsCN.com

关于linux redis哨兵 mysql主从关系 等等redis哨兵和主从的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Linux - redis哨兵集群实例、linux 7 redis 4.0.11 主从复制及哨兵模式、linux centos 7安装redis并且配置主从复制和哨兵模式。一主二从三哨兵、Linux MySQL主从同步失败,报错1594的解决方法_MySQL等相关知识的信息别忘了在本站进行查找喔。

本文标签: