返回顶部

MySql集群之读写分离配置

一、主从复制原理

 

 

 

二、环境准备

192.168.140.131 主库

192.168.140.132 从库

三、主库配置

1、修改配置文件 /etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一,取值范围:1-232-1,默认为1
server-id=1

#是否只读,1代表只读,0代表读写
read-only=0

#忽略的数据,指不需要同步的数据库
#binlog-ignore-db=mysql

#指定同步的数据库
#binlog-do-db=db01

2、重启mysql服务

systemctl restart mysqld

3、登录mysql,创建远程连接的账号,并授予主从复制权限

#创建itcast用户,并设置密码,该用户可在任意主机连接该mysql服务
create user 'itcast'@'%' identified by 'Xiaohemiao_123';

#为'itcast'@'%'用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

4、通过指令,查看二进制日志坐标

show master status;

 

 

 

字段含义说明:

file:从哪个日志文件开始推送日志文件

position:从哪个位置开始推送日志

binlog_ignore_db:指定不需要同步的数据库

四、从库配置

 1、修改配置文件 /etc/my.cnf

#mysql服务ID,保证整个集群环境中唯一,取值范围:1-232-1,默认为1
server-id=2

#是否只读,1代表只读,0代表读写
read-only=1

2、重启mysql服务

systemctl restart mysqld

3、登录mysql ,设置主库配置

CHANGE REPLICATION SOURCE TO SOURCE_HOST='',SOURCE_USER='',SOURCE_PASSWORD='',SOURCE_LOG_FILE='',SOURCE_LOG_POS=;

上述是8.0.23中的语法,如果mysql是8.0.23之前的版本,执行如下sql
CHANGE MASTER TO MASTER_HOST='',MASTER_USER='',MASTER_PASSWORD='',MASTER_LOG_FILE='',MASTER_LOG_POS=;

#示例:
CHANGE MASTER TO MASTER_HOST='192.168.140.131',MASTER_USER='itcast',MASTER_PASSWORD='Xiaohemiao_123',MASTER_LOG_FILE='mysql-bin.000010',MASTER_LOG_POS=766;

4、开启同步操作

start replica; #8.0.22版本之后
start slave; #8.0.22之前版本
# 停止slave
stop slave;

5、查看主从同步状态

show replica status\G; #8.0.22版本之后
show slave status\G; #8.0.22之前版本 

 

 

 

 

 

 

 

-- 负责把主库bin日志(Master_Log)内容投递到从库的中继日志上(Relay_Log)
Slave_IO_Running: Yes
 
-- 负责把中继日志上的语句在从库上执行一遍
Slave_SQL_Running: Yes
 
-- Yes:表示正常, No:表示异常

五、测试并验证

首先我们在主库192.168.140.131上创建数据库TestDB并创建表t_user,此时我们在从库192.168.140.132上也会看到同样的数据库和表名,如图:

 

 

 此时,,,,,,,,,,,,,,,,,,读写分离大功告成,,,,,,,,,,,,,,,,,,,,,,,

 

posted @ 2022-06-26 16:46  SportSky  阅读(450)  评论(0编辑  收藏  举报
作者:SportSky 出处: http://www.cnblogs.com/sportsky/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。