mysql数据库服务双主搭建
mysql数据库服务双主搭建
1、搭建两台数据库服务环境,master,slave
数据库搭建参考:https://www.cnblogs.com/zuouncle/p/17713806.html
2、查看服务运行状态
systemctl status mysqld
3、主库1(master)配置
配置mysql的启动配置文件
vim /etc/my.cnf
#开启binlog日志 log-bin=/usr/local/mysql/data/binlog #mysql服务id,保证整个集群环境中唯一,取值范围1-2的23次方-1,默认1 server-id=1 #指定同步的数据库 #binlog-do-db=db01 #binlog-do-db=db02 #在作为从数据库的时候,有写入操作也要更新二进制日志文件 log-slave-updates
然后进行重启
systemctl restart mysqld
登录mysql,然后创建远程链接的账号,并授予主从复制权限
-- 创建master用户,并设置密码,该用户可在任意主机联机mysql服务 create user 'master'@'%' identified with mysql_native_password by 'master@1234'; -- 为'master'用户分配主从复制权限 grant replication slave on *.* to 'master'@'%';
4、主库2(slave)配置
配置mysql的启动配置文件
vim /etc/my.cnf
#开启binlog日志 log-bin=/usr/local/mysql/data/binlog #mysql服务id,保证整个集群环境中唯一,取值范围1-2的23次方-1,默认1 server-id=2 #指定同步的数据库 #binlog-do-db=db01 #binlog-do-db=db02 #在作为从数据库的时候,有写入操作也要更新二进制日志文件 log-slave-updates
然后进行重启
systemctl restart mysqld
登录mysql,然后创建远程链接的账号,并授予主从复制权限
-- 创建master用户,并设置密码,该用户可在任意主机联机mysql服务 create user 'master'@'%' identified with mysql_native_password by 'master@1234'; -- 为'master'用户分配主从复制权限 grant replication slave on *.* to 'master'@'%';
5、设置关联配置
master服务关联slave服务的配置
change master to master_host='192.168.134.130',master_user='master',master_password='master@1234',master_log_file='binlog.000001',master_log_pos=154;
开启同步操作
start slave;
查看同步状态
show slave status;
slave服务关联master服务的配置
change master to master_host='192.168.134.129',master_user='master',master_password='master@1234',master_log_file='binlog.000001',master_log_pos=154;
开启同步操作
start slave;
查看同步状态
show slave status;
6、数据测试
1、在master服务创建数据库,表,插入数据后,在slave服务查看数据
登录master服务数据库
-- 创建测试数据库
create database db01; use db01; show tables;
-- 创建测试表
create table tb_user( id int(11) PRIMARY KEY not null auto_increment, name VARCHAR(50) not null, sex varchar(2) )engine=INNODB DEFAULT charset=utf8;
-- 插入测试数据
insert into tb_user (id,name,sex) values (null,'Tom','1'),(null,'Trigger','0'),(null,'Dawn','1');
登录slave服务数据库
use db01; select * from tb_user;
说明master到slave数据同步完成
2、在slave服务创建数据库,表,插入数据后,在master服务查看数据
登录slave服务数据库
-- 创建测试数据库
create database db02; use db02; show tables;
-- 创建测试表
create table sys_user( id int(11) PRIMARY KEY not null auto_increment, name VARCHAR(50) not null, sex varchar(2) )engine=INNODB DEFAULT charset=utf8;
-- 插入测试数据
insert into sys_user (id,name,sex) values (null,'Tom','1'),(null,'Trigger','0'),(null,'Dawn','1');
登录master服务数据库

说明slave到master数据同步完成
这样双主的mysql服务就搭建完毕,当master服务宕机时,就能使用slave服务做主数据库,master服务做备用数据库,当slave服务宕机时,就能使用master服务做主数据库,slave服务做备用数据库,就能保证业务库环境不会彻底崩溃
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器