mysql数据库服务主从搭建
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;
显示如下,说明主从配置完成