MariaDB-5.5.56 主主复制+keepalived高可用

mariadb主主复制+keepalived高可用

主机1:192.168.1.22

主机2:  192.168.1.23

VIP1:192.168.1.233

VIP2:  192.168.1.234

主机1设置:

安装需要用到的rpm包

yum -y install ipvsadm keepalived mariadb mariadb-server

启动mariadb并设置为开机启动

systemctl start mariadb

systemctl enable mariadb

设置密码

mysql_secure_installation

回车以后提示:

enter current password for root (enter for none):  ## 如果是初次运行直接回车,因为没有密码

set root password?[Y/n]   ##是否设置root用户密码,输入y回车

new password:  ##设置root用户密码

re-enter new password:   ##国际惯例再输入一次密码

remove anonymous users?[Y/n]  ##是否删除匿名用户

disallow root login remotely?[Y/n]  ##是否禁止root用户远程登录

remove test database and access to it?[Y/n]   ## 是否删除test数据库

reload privilege tables now?[Y/n]   ## 是否重新加载权限表

测试登录

mysql -uroot -p 密码

修改配置文件

vim /etc/my.cnf

[mysqld]

init_connect=‘SET collation_connection = utf8_unicode_ci‘

init_connect=‘SET NAMES utf8‘

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-bin=mysql-bin           #手动添加该项配置 二进制文件的前缀

log-slave-updates=true       #手动添加该项配置 开启从日志

relay-log=relay-log-bin       #手动添加该项配置 中继日志文件的前缀

relay-log-index=slave-relay-bin.index  #手动添加该项配置 定义中继日志的名称

server-id=11                #手动添加该项配置 ID号唯一,不能重复

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

保存退出,重启mariadb

systemctl restart mariadb

写监测脚本

vim /opt/chk_mysql.sh

#!/bin/bash

#check mysqld server status

mysqlpid=$(ps -C mysqld --no-header | wc -l)

if [ $mysqlpid -eq 0 ];then

systemctl start mariadb

sleep 3

mysqlpid=$(ps -C mysqld --no-header | wc -l)

if [ $mysqlpid -eq 0 ];then

systemctl stop keepalived

echo "Keepalived服务关闭,请检查你的mariadb服务!" | tee -a /var/log/messages

fi

fi

保存退出

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id MYSQL_mariadb

}

vrrp_script chk_mysql {

script /opt/chk_mysql.sh               #指定脚本位置

interval 2                            #2秒检查一次

weight -10                          # 权重 -10

}

vrrp_instance VI_1 {

state MASTER

interface ens32

virtual_router_id 51          # VI_1里的 ID 号和从里的VI_1的ID是一致的

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_mysql        #重新指向vrrp_script

}

virtual_ipaddress {

192.168.1.233           #VIP

}

}

vrrp_instance VI_2 {

state MASTER

interface ens32

virtual_router_id 52                   #区别VI_1的ID

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_mysql

}

virtual_ipaddress {

192.168.1.234

}

}

主机2配置:

安装需要用到的rpm包

yum -y install ipvsadm keepalived mariadb mariadb-server

启动mariadb并设置为开机启动

systemctl start mariadb

systemctl enable mariadb

设置密码

mysql_secure_installation

回车以后提示:

enter current password for root (enter for none):  ## 如果是初次运行直接回车,因为没有密码

set root password?[Y/n]   ##是否设置root用户密码,输入y回车

new password:  ##设置root用户密码

re-enter new password:   ##国际惯例再输入一次密码

remove anonymous users?[Y/n]  ##是否删除匿名用户

disallow root login remotely?[Y/n]  ##是否禁止root用户远程登录

remove test database and access to it?[Y/n]   ## 是否删除test数据库

reload privilege tables now?[Y/n]   ## 是否重新加载权限表

测试登录

mysql -uroot -p 密码

修改配置文件

vim /etc/my.cnf

[mysqld]

init_connect=‘SET collation_connection = utf8_unicode_ci‘

init_connect=‘SET NAMES utf8‘

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-bin=mysql-bin           #手动添加该项配置 二进制文件的前缀

log-slave-updates=true       #手动添加该项配置 开启从日志

relay-log=relay-log-bin       #手动添加该项配置 中继日志文件的前缀

relay-log-index=slave-relay-bin.index  #手动添加该项配置 定义中继日志的名称

server-id=12               #手动添加该项配置 ID号唯一,不能重复

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

!includedir /etc/my.cnf.d

保存退出,重启mariadb

systemctl restart mariadb

写监测脚本

vim /opt/chk_mysql.sh

#!/bin/bash

#check mysqld server status

mysqlpid=$(ps -C mysqld --no-header | wc -l)

if [ $mysqlpid -eq 0 ];then

systemctl start mariadb

sleep 3

mysqlpid=$(ps -C mysqld --no-header | wc -l)

if [ $mysqlpid -eq 0 ];then

systemctl stop keepalived

echo "Keepalived服务关闭,请检查你的mariadb服务!" | tee -a /var/log/messages

fi

fi

保存退出

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

[email protected]

}

notification_email_from [email protected]

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id MYSQL_mariadb

}

vrrp_script chk_mysql {

script /opt/chk_mysql.sh               #指定脚本位置

interval 2                            #2秒检查一次

weight -10                          # 权重 -10

}

vrrp_instance VI_1 {

state MASTER

interface ens32

virtual_router_id 51          # VI_1里的 ID 号和从里的VI_1的ID是一致的

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_mysql        #重新指向vrrp_script

}

virtual_ipaddress {

192.168.1.233           #VIP

}

}

vrrp_instance VI_2 {

state MASTER

interface ens32

virtual_router_id 52                   #区别VI_1的ID

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

track_script {

chk_mysql

}

virtual_ipaddress {

192.168.1.234

}

}

配置互为主从复制:

首先是主机1:

给从服务器授权:

mysql -uroot -p123123

grant replication slave on *.* to ‘myslave’@’192.168.1.%’ identified by ‘123123’;

flush privileges;

show master status;   #记住file的文件名 和position的id号

进入主机2

mysql -uroot -p123123

change master to master_host=’192.168.1.22’,master_user=’myslave’,master_password=’123123’,master_log_file=’mysql-bin.000004’,master_log_pos=’475’;      #这里写上主机1上显示的file的文件名和id号

start slave;

show slave status \G;

主机2:

给从服务器授权:

mysql -uroot -p123123

grant replication slave on *.* to ‘myslave’@’192.168.1.%’ identified by ‘123123’;

flush privileges;

show master status;   #记住file的文件名 和position的id号

进入主机1

mysql -uroot -p123123

change master to master_host=’192.168.1.23’,master_user=’myslave’,master_password=’123123’,master_log_file=’mysql-bin.000004’,master_log_pos=’475’;      #这里写上主机1上显示的file的文件名和id号

start slave;

show slave status \G;

配置完成

原文地址:https://www.cnblogs.com/liuYGoo/p/9451305.html

时间: 2024-10-31 15:41:53

MariaDB-5.5.56 主主复制+keepalived高可用的相关文章

CentOS 7 上部署Memcached 主主复制 + keepalived 高可用架构

实验环境 Memcached主主复制是指在任意一台Memcached服务器修改数据都会被同步到另外一台,但是Memcached API客户端是无法判断连接到哪一台Memcached服务器的,所以需要设置VIP地址,提供给Memcached API客户端进行连接.可以使用kcepalived产生的VIP地址连接主Memceached服务器,并且提供高可用架构.本案例使用两台Memcahed服务器和一台测试主机来完成. 主Memcahed服务器IP:192.168.10.161 备Memcahed服

Memcached主主复制+Keepalived高可用架构(内含所有源码包)

初步了解memcached主主复制: Memcached主主复制是指在任意一台memcached服务器修改数据都会被同步到另外一台,但是memcached API客户端是无法判断连接到哪一台memcached服务器的,所以需要设置VIP地址,提供给memcached API客户端进行连接.可以使用keepalived产生的VIP地址连接主memcached服务器,并且提供高可用架构.Memcached的复制功能支持多个memcached之间进行相互复制(双向复制,主备都是可读可写的),可以解决m

Memcached主主复制+Keepalived高可用群集

Memcached 主主案例 : Memcached 主主复制是指在任意一台 Memcached 服务器修改数据都会被同步到另外一台,但是Memcached API 客户端是无法判断链接到那一台服务器的,所以需要设置 VIP 地址,提供给 Memcached API 客户端进行链接.可以使用keepalived 产生的 VIP 地址链接主 Memcached 服务器,并且提供高可用架构. 实验环境 : 主机 IP地址 操作系统 主要软件包 Memcached 1 192.18.217.128 C

Memcached 主主复制 + Keepalived 高可用架构【附上原理】

目录: 1·Memcached 主主复制概念2·Memcached 高可用的实现3·案例部署4·总结 Memcached 主主复制概念 (1)主主复制概念: Memcached 主主复制是指在任意一台 Memcached 服务器修改数据都会被同步到另外一台,但是 Memcached API 客户端无法判断连接到那一台 Memcached 服务器,所有需要设置 VIP 地址,提供给 Memcached API 客户端进行连接. (2)文章推荐: 知道了主主复制,那么需要了解 Memcached 是

超详细搭建Memcached主主复制+Keepalived高可用架构

简介 Memcached本身是基于内存的缓存,它的设计本身没有冗余机制.如果一个Memcached节点失去了所有的数据,应用程序可以从数据源中再次获取到数据,可以使用开源软件Magent实现Memcached集群,通过Magen缓存代理,防止单点现象.缓存代理也可以做备份,可以用keepalived软件实现高可用 实验环境 主机名 操作系统 IP地址 相关软件 master CentOS_7.4_x86_64 192.168.100.71 libevent-2.1.8-stable.tar.gz

mysql主主复制+keepalived高可用(使用VIP访问数据库提示不允许连接)

ERROR 1130 (HY000): Host 'nginx-vip' is not allowed to connect to this MySQL server mysql> GRANT ALL PRIVILEGES ON *.* TO 'slave'@'192.168.0.232' IDENTIFIED BY 'slave' WITH GRANT OPTION; Query OK, 0 mysql> use mysql; Reading table information for co

Centos7 下实现 memcached + keepalived 高可用群集

memcached + keepalived 高可用群集 memcached介绍 Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据.很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站.Memcached是典型的C/S架构,因此需要安装 Memcached服务端与 MemcachedAPI客户端. Memcached服务端是用C语言编写的,而

干货,memcached+keepalived实现主主复制和高可用,详解!

keepalived+memcached主主复制高可用介绍: 客户端连接两台服务器之间的VIP地址,如果后端服务器故障自动切换. Keepalive原理: 1.故障检测: Keepalived的作用是检测memcached服务器的状态是否正常. 2.主从切换: Keepalived如果检测到memcached服务发生DOWN机或者死机等,能将VIP从主服务器移至从服务器 3.Keepalived如何发现memcached异常: 1) keepalived在memcached主服务器产生一个虚拟I

mysql主主复制及keepalived高可用群集

mysql主主复制及keepalived高可用 Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系(双主),通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台MySQL数据库,保证系统的高可用. 实验基本拓扑: 主主同步就是两台机器互为主从的关系,在任何一台机器上写入都会同步. 在master1 mysql主配置文件中添加下面参数(/etc/my.c