Centos7下搭建MySQL高可用架构(互为主从)

2023-05-16

1、环境介绍

192.168.31.14 A机器
192.168.31.82 B机器
192.168.31.200 vip(A主B从)

2、安装mysql
2.1、创建配置文件:vi mysql.cnf

[mysqld]
port = 3306
basedir=/home/data/server/mysql
datadir=/home/data/server/mysql/data
max_connections=1000
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=20M
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-grant-tables=1
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

2.2、创建安装文件:vi mysql.sh

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
mkdir -p /home/data/server/
rm -rf /etc/my.cnf
cp mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz /home/data/server/
cp mysql.cnf /etc/my.cnf
cd /home/data/server/
tar -xzvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
rm -rf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
groupadd mysql
useradd -r -g mysql mysql
cd mysql
mkdir data
chown -R mysql /home/data/server/mysql/
chgrp -R mysql /home/data/server/mysql/
cd /home/data/server/mysql/bin
yum install -y libaio-devel.x86_64 numactl
./mysqld --initialize --user=mysql --basedir=/home/data/server/mysql/ --datadir=/home/data/server/mysql/data/
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
cd /home/data/server/mysql/support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
yum install initscripts -y
service mysql start
chkconfig --add mysql
cd /home/data/server/mysql/bin
./mysql -u root <<EOF
flush privileges;
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
USE mysql;
DELETE FROM user WHERE User="root" and Host="localhost";
flush privileges;
exit
EOF
sed -i 's/skip-grant-tables=1/# skip-grant-tables=1/g' /etc/my.cnf
service mysql restart

2.3、执行安装脚本

chmod +x mysql.sh
./mysql.sh

3、配置双主
3.1、A节点增加以下配置:vi /etc/my.cnf

[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=row
auto-increment-increment=2 
auto-increment-offset=1
log-slave-updates=1

3.2、B节点增加以下配置:vi /etc/my.cnf

[mysqld]
server-id=2
log-bin=mysql-bin
binlog_format=row
auto-increment-increment=2 
auto-increment-offset=2
log-slave-updates=1

3.3、重启生效(AB都执行)

service mysql restart

3.4、查看master状态

A节点-->:
mysql> show master status; 
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set
B节点-->:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set

3.5、配置主从

A执行-->:
mysql>stop slave;
    mysql>change master to master_host='192.168.31.82',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;
    mysql>start slave; 
B执行-->:
mysql>stop slave;
    mysql>change master to master_host='192.168.31.14',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;
    mysql>start slave; 

3.6、验证是否成功(AB分别执行)

mysql> show slave status;
  当这个参数都为yes时,证明主从复制成功
  Slave_IO_Running: Yes   Slave_SQL_Running: Yes 
  此时,在AB节点都可以增加数据且都能复制到另一个节点

4、安装keepalived

yum install -y keepalived

5、配置keepalived.conf

vi /etc/keepalived/keepalived.conf

(1)主节点A

global_defs
{
router_id master_14
}
vrrp_script chk_mysql_port {  
        script "</dev/tcp/127.0.0.1/3306"  
        interval 1  
        weight -2  
}
vrrp_instance mysql {
state MASTER
interface ens33    #这个要和本机网卡名字一样
virtual_router_id 100    #这个数值 master和slave必须统一
priority 100     #这个数值决定哪台服务器是master 
advert_int 1
authentication {
        auth_type PASS
        auth_pass 123456
}
virtual_ipaddress {
        192.168.31.200
}
track_script {
        chk_mysql_port  
}
}

(2)从节点B

global_defs
{
router_id slave_82
}
vrrp_script chk_mysql_port {  
        script "</dev/tcp/127.0.0.1/3306"  
        interval 1  
        weight -2  
}
vrrp_instance mysql {
state BACKUP
interface ens33    #这个要和本机网卡名字一样
virtual_router_id 100    #这个数值 master和slave必须统一
priority 100     #这个数值决定哪台服务器是master 这里我们比master数值低,所以角色是backup,
advert_int 1
authentication {
        auth_type PASS
        auth_pass 123456
}
virtual_ipaddress {
        192.168.31.200
}
track_script {
        chk_mysql_port  
}
}

6、启动keepalived

systemctl start keepalived
systemctl enable keepalived

参考资料:
https://xuxile.blog.csdn.net/article/details/52313640
https://blog.csdn.net/qq_44866424/article/details/120151293

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos7下搭建MySQL高可用架构(互为主从) 的相关文章

随机推荐

  • NSS 错误码详细信息

    Table 8 1 Error codes defined in sslerr h SSL ERROR EXPORT ONLY SERVER 12288 Unable to communicate securely Peer does no
  • nltk.download失败解决方案

    因国际网络连接不稳定 xff0c 很多国内的小伙伴在使用NLTK下载停用词表时都碰到过下载失败的情况 其实解决方法很简单 xff0c 只要先下载官网停用词包 xff0c 然后在手动复制到NLTK对应目录下就好了 xff0c 具体方法如下 x
  • 谨以此文献给正在面临选择的你

    我是2011届的考生 xff0c 当我从我们学校的的分数公布栏上看到自己的分数时 xff0c 我感觉我的世界都变成了灰色 xff0c 一切都暗淡无光 在那段时间里 xff0c 我思考了很多的问题 xff0c 诸如要不要去复读 去哪一所学校
  • Android应用程序获取系统签名的方法

    在Android应用程序开发过程中 xff0c 经常会碰到要获取系统权限的问题 例如 xff1a lt uses permission android name 61 34 android permission STATUS BAR 34
  • VMware安装openEuler-20.03系统图文安装教程

    VMware安装openEuler 20 03系统图文安装教程 1 环境概要 系统架构 xff1a x86 64虚拟机软件 xff1a VMware16 pro安装的操作系统 xff1a openEuler 20 03 LTS 2 安装前准
  • 【雅可比左乘右乘】

    常见雅可比左乘 xff08 以自变量R为例子 xff0c 围绕旋转点p的旋转点的左扰动雅可比 xff09 xff1a 旋转点的右扰动雅可比 xff08 右乘 xff09 xff1a 左雅可比和右雅可比之间的区别在于它们各自描述了不同的变换方
  • Linux 下的 ActiveMQ C++ 客户端开发

    ActiveMQ CPP 是一个提供消息库 xff0c 即 ActiveMQ C 43 43 客户端 API 通过该接口 xff0c 我们可以使用多种协议来与消息中间件进行通信 本文主要针对 CentOS 7 x64 xff08 Linux
  • 基于Docker快速搭建ELK6.7.0

    1 安装ElasticSearch 1 1准备工作 1 1 1节点介绍 192 168 1 21 192 168 1 22 192 168 1 23 1 1 2拉取镜像 三台虚拟机都执行 docker pull elasticsearch
  • mysql事务中ddl语句的隐式提交

    1 当执行到DDL语句时 xff0c 会隐式的将当前回话的事务进行一次 COMMIT 操作 xff0c 因此在MySQL中执行DDL语句时 xff0c 应该严格地将DDL和DML完全分开 xff0c 不能混合在一起执行 2 为什么DDL语句
  • python基于UDP广播实现查找局域网服务器

    UDP广播案例 发送端 from socket import import time 设定目标地址 dest 61 39 192 168 31 255 39 9999 192 168 31是我的网段 255代表任意IP s 61 socke
  • 基于kibana开发工具(Dev Tools )修改logstash模板

    1 查询模板 GET template logstash Deprecation types removal The parameter include type name should be explicitly specified in
  • CentOS 7 MySQL自动备份shell脚本

    系统环境 xff1a CentOS7 64位 Minimal版 xff08 VMware xff09 MySQL5 7 原理与工具 xff1a shell脚本 mysqldump程序 crontab命令 1 新建shell脚本 vi opt
  • Centos7.2下RocketMQ 集群部署(2m-2s-sync)

    一 环境准备与介绍 1 部署架构 使用的模式是 2m 2s sync 2 broker机器信息 Master 1 xff1a 192 168 31 5 Slave 1 xff1a 192 168 31 6 Master 2 xff1a 19
  • centos7 快速卸载openjdk

    rpm qa grep java xargs rpm e nodeps 参考 xff1a https blog csdn net weixin 34060741 article details 91905833
  • CentOS7下安装部署kafka集群

    一 环境 在centos7 2系统下 xff0c 使用3台服务器搭建集群 Server1 192 168 1 11 Server2 192 168 1 12 Server3 192 168 1 13 二 安装配置JDK 下载并安装JDK1
  • Centos7安装Hadoop2.6.0集群

    一 环境准备与介绍 1 部署架构 使用的模式是 1m 2s 2 nameserver机器信息 192 168 1 89 node1 192 168 1 149 node2 192 168 1 180 node3 2 修改主机名称 2 1 分
  • 【line features】线特征

    使用BinaryDescriptor接口提取线条并将其存储在KeyLine对象中 xff0c 使用相同的接口计算每个提取线条的描述符 xff0c 使用BinaryDescriptorMatcher确定从不同图像获得的描述符之间的匹配 ope
  • Centos7安装Hive2.0.1集群

    1 准备工作 1 1 安装jdk1 8和mysql5 7 21 略 1 2 安装Hadoop2 6 0 xff0c 略 1 3 机器介绍 192 168 1 89 node1 192 168 1 149 node2 192 168 1 18
  • hive2.0.1执行存储过程

    1 编写过程sql 基于上篇文章的test db库 xff0c vi test sql xff0c 新增 xff1a use test db begin insert into t test2 id name values 2 39 你好
  • Centos7下搭建MySQL高可用架构(互为主从)

    1 环境介绍 192 168 31 14 A机器 192 168 31 82 B机器 192 168 31 200 vip xff08 A主B从 xff09 2 安装mysql 2 1 创建配置文件 xff1a vi mysql cnf m