千家信息网

mysql双主配置讲义

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,下文内容主要给大家带来mysql双主配置讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。结尾21.数据库架构图:
千家信息网最后更新 2025年12月01日mysql双主配置讲义

下文内容主要给大家带来mysql双主配置讲义,这里所讲到的知识,与书籍略有不同,都是专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。

结尾2

1.数据库架构图:

2.安装环境信息:
master1 172.16.90.13 CentOS 7.2 Keepalived读 VIP:172.16.90.15
master2 172.16.90.14 CentOS 7.2 Keepalived读 VIP:172.16.90.16

3.MySQL双主配置

master1修改my.cnf,新增如下配置:

server-id=13log-bin=mysql-binsync-binlog=1binlog-checksum=nonebinlog-format=mixedauto-increment-increment=2auto-increment-offset=1log-slave-updatesslave-skip-errors=all

master2修改my.cnf,新增如下配置:

server-id=14log-bin=mysql-binsync-binlog=1binlog-checksum=nonebinlog-format=mixedauto-increment-increment=2auto-increment-offset=1log-slave-updatesslave-skip-errors=all

在master1中为mysql从库账户授权:

grant replication slave on . to 'sync'@'%' identified by 'syncpwd';
flush privileges;
show master status; #当前主库状态,即master1
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 | 599 | | | |
+------------------+----------+--------------+------------------+-------------------+

在master2中为mysql从库账户授权:

grant replication slave on . to 'sync'@'%' identified by 'syncpwd';
flush privileges;
show master status; #当前主库状态,即master2
show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 468 | | | |
+------------------+----------+--------------+------------------+-------------------+

在maste1中指定master2为主库:

stop slave;
change master to master_host='172.16.90.14',master_user='sync',master_password='syncpwd',master_log_file='mysql-bin.000002',master_log_pos=468;
flush privileges;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;

在maste2中指定master1为主库:

stop slave;
change master to master_host='172.16.90.13',master_user='sync',master_password='syncpwd',master_log_file='mysql-bin.000004',master_log_pos=599;
flush privileges;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;

MySQL双主配置完成,验证配置成功:

show slave status\G #master1中显示的信息
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.90.13
Master_User: sync
Master_Port: 3306
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
show slave status\G #master2中显示的信息
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.90.14
Master_User: sync
Master_Port: 3306
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

4.Keepalived高可用配置

安装:yum install -y keepalived
启动:systemctl stop keepalived
说明:
当两台云服务器都正常的时候
用户写数据默认访问服务器A,如果A有异常则访问B服务器。
用户读数据默认访问服务器B,如果B有异常则访问A服务器。

服务器A的写数据初始权重为100,B为90
服务器A的读数据初始权重为90,B为100
检测进程检测到异常时,会使得本机的权重下降20

服务器A

vrrp_script chk_master1 {    script "/opt/context/keepalive_check/chk_mysql.sh"    interval 2                weight -20 }vrrp_instance VI_MASTER1 {    state MASTER    interface eno16780032    virtual_router_id 51    priority 100    mcast_src_ip 172.16.90.13    advert_int 1    authentication {        auth_type PASS        auth_pass 5678    }    virtual_ipaddress {        172.16.90.15    }    track_script {        chk_master1    }}vrrp_instance VI_MASTER2 {    state BACKUP    interface eno16780032    virtual_router_id 52    priority 90    mcast_src_ip 172.16.90.13    advert_int 1    authentication {        auth_type PASS        auth_pass 15678    }    virtual_ipaddress {        172.16.90.16    }}

服务器B

vrrp_script chk_master2 {    script "/opt/context/keepalive_check/chk_mysql.sh"    interval 2    weight -20}vrrp_instance VI_MASTER1 {    state BACKUP    interface eno16780032    virtual_router_id 51    priority 90    mcast_src_ip 172.16.90.14    advert_int 1    authentication {        auth_type PASS        auth_pass 5678    }    virtual_ipaddress {        172.16.90.15    }}vrrp_instance VI_MASTER2 {    state MASTER    interface eno16780032    virtual_router_id 52    priority 100    mcast_src_ip 172.16.90.14    advert_int 1    authentication {        auth_type PASS        auth_pass 15678    }    virtual_ipaddress {        172.16.90.16    }    track_script {        chk_master2    }}

检测脚本

#!/bin/bashcounter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)if [ "${counter}" -eq 0 ]; then    systemctl stop keepalived
fi

对于以上关于mysql双主配置讲义,如果大家还有更多需要了解的可以持续关注我们的行业推新,如需获取专业解答,可在官网联系售前售后的,希望该文章可给大家带来一定的知识更新。
服务器 服务 配置 数据 信息 权重 用户 检测 讲义 专业 中指 状态 知识 账户 不同 成功 下文 书籍 人员 价值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 svn搭建远程服务器 blob从rtmp服务器拉流 可以用哪些外文数据库搜索 大话西游2此账号不能连接服务器 市北区计算机软件开发哪家靠谱 新内存数据库 江西华为服务器维修调试 新乡市信易通网络技术 无限流量卡的网络安全吗 魂斗罗归来 服务器 小学生网络安全教育比赛 禁止处理涉密 注意网络安全 梦幻模拟战浮空城服务器找不到了 网上自学网络安全工程师 广东省教育网络安全 谈谈对数据库是有组织的理解 宁波吉加软件开发制作 高职计算机网络技术主要学什么 浙江萤火虫互联网科技有限公司 河南漯河网络安全宣传周 学网络安全复杂吗 监控中心管理服务器定额 论剑江湖是用哪款软件开发的 金蝶数据库安装 网络技术公司不用缴税 从事软件开发工作怎么样 考计算机三级数据库上机吗 浅谈疾控网络安全管理 我的世界怎么当服务器管理员 全球通信网络安全公司
0