mysql数据库服务主从搭建

发布时间 2023-09-20 14:25:32作者: 左叔
mysql数据库服务主从搭建
1、搭建两台数据库服务环境,master,slave
数据库搭建参考:https://www.cnblogs.com/zuouncle/p/17713806.html
2、查看服务运行状态
systemctl status mysqld

 如果显示以下内容就关闭mysql服务重新启动

 3、主库(master)配置

配置mysql的启动配置文件

vim /etc/my.cnf
#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'@'%';

查看是否开启binlog日志

show variables like '%log_bin%'

 如果没有开启在/etc/my.cnf 文件下添加如下配置,然后重启数据库

 查看binlog日志

show master status;

 4、从库配置

配置mysql的启动配置文件

vim /etc/my.cnf
#mysql服务id,保证整个集群环境中唯一,取值范围1-2的23次方-1,默认1
server-id=2

然后进行重启

systemctl restart mysqld

登录mysql,从库配置关联的主库

mysql8.0.23版本后
change replication source to source_host='IP',source_user='用户',source_password='密码',source_log_file='binlog开始文件',source_log_pos=position开始编号;

mysql8.0.23版本前

change master to master_host='IP',master_user='用户',master_password='密码',master_log_file='binlog开始文件',master_log_pos=position开始编号;

本机采用

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;

开启同步操作
mysql8.0.22之后
start replica;

mysql8.0.22之前

start slave;

本机采用

start slave;

查看开启状态

show slave status;

 5、开始测试

在主库创建新的数据库,新的表的表插入数据库,然后再从库查看数据是否自动同步

在master服务登录数据库后

-- 创建测试数据库

-- 创建测试数据库
create database db01;

use db01;

创建测试表并插入数据

-- 创建测试表
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;

show tables;

select * from tb_user;

显示如下,说明主从配置完成