mysql数据库服务双主搭建

发布时间 2023-09-20 16:33:04作者: 左叔
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服务做备用数据库,就能保证业务库环境不会彻底崩溃