mycat mysql 一主多从_Mycat分布式数据库架构解决方案--搭建MySQL读写分离环境--一主多从...

本文介绍了如何在Linux环境下搭建MySQL的一主多从架构,实现读写分离。主要内容包括时间同步、主服务器和从服务器的配置、数据库同步以及故障排查。适合需要进行数据库高可用性建设的读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

echo编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信(微信号:t2421499075)交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!

本文主要为了记录MySQL搭建读写分离的操作,是本人的操作纪实,并没有详细讲解其中的原理和操作设置,如果需要详细解释的,不建议阅读。

环境准备:

linux系统版本

对应服务器地址

数据库

版本CentOS7

192.168.222.132

MySQL

5.6

CentOS7

192.168.222.133

MySQL

5.6

CentOS7

192.168.222.134

MySQL

5.6

第一步:建立时间同步环境

使用yum安装npt

yum install ntp –y

安装完成之后修改ntp对应的配置文件

vi /etc/ntp.conf

添加如下配置:图片中地址,对应我们自己服务器的地址

restrict 192.168.222.132 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 8

AAffA0nNPuCLAAAAAElFTkSuQmCC

启动ntp服务

systemctl start ntpd

检验ntp是否成功安装运行,如果正常工作我们可以得到如下信息

ntpq -p

AAffA0nNPuCLAAAAAElFTkSuQmCC

将我们三台服务全部做以上配置,配置完成之后,我们就可以开始设置主mysql服务器了

第二步:配置 MySQL 主服务器

打开my.cnf配置文件,进行如下配置

# 打开文件

vi /etc/my.cnf

找到配置文件中的这一段,然后按照下面的配置进行修改

AAffA0nNPuCLAAAAAElFTkSuQmCC

server-id=132 # 使用ip的后端作为我们的主服务id

log_bin=mysql-bin # 开启MySQ二进制日志系统。

登录mysql,然后获取数据库列表

mysql -uroot -P3306 -p123456 -h192.168.222.132

show databases;

AAffA0nNPuCLAAAAAElFTkSuQmCC

binlog-do-db=test # 需要同步的数据库名test,其他的数据库不同步。

binlog-ignore-db=mysql #不同步mysql系统数据库,每一个数据库对应一行。

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

配置完成,重复服务

service mysql restart

查看我们的配置是否成功

show master status;

AAffA0nNPuCLAAAAAElFTkSuQmCC

如果显示结果和我们配置一致证明我们的主服务器配置已经成功啦!可以进行从服务器的配置

配置从服务器

打开my.cnf配置文件,进行如下配置

# 打开文件

vi /etc/my.cnf

找到配置文件中的这一段,然后按照下面的配置进行修改

AAffA0nNPuCLAAAAAElFTkSuQmCC

server-id=133 # 使用ip的后端作为我们的主服务id

log_bin=mysql-bin # 开启MySQ二进制日志系统。

登录mysql,然后获取数据库列表

mysql -uroot -P3306 -p123456 -h192.168.222.133

show databases;

AAffA0nNPuCLAAAAAElFTkSuQmCC

binlog-do-db=test # 需要同步的数据库名test,其他的数据库不同步。

binlog-ignore-db=mysql #不同步mysql系统数据库,每一个数据库对应一行。

binlog-ignore-db=information_schema

binlog-ignore-db=performance_schema

配置完成,重复服务

service mysql restart

从服务器需要做的关键操作

为从服务器创建一个可以登录主服务器的账号。

# 登录主服务器,创建一个新账号

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.222.133' IDENTIFIED BY '123456';

# 刷新权限

FLUSH PRIVILEGES;

然后使用root用户连接mysql,再执行一下语句

change master to

master_host='192.168.222.132',

master_user='slave',

master_password='123456',

master_log_file='mysql-bin.000011',

master_log_pos=1243;

配置完成之后,启动从服务器

start slave;

查看从服务器启动状态

show slave status \G;

AAffA0nNPuCLAAAAAElFTkSuQmCC

出现上面这两个“Yes”就证明已经配置成功了

如果发现配置不对,需要先停掉从服务器

stop slave;

然后重置从服务器

reset slave;

采坑解决

AAffA0nNPuCLAAAAAElFTkSuQmCC

如果出现如上报错,我们需要先停止从服务器。该问题引起的原因是我之前安装数据库的时候并没有发现他们的版本不一致导致的,停机更新版本之后再次按照下面步骤操作就好了。

# 先停掉从服务器

stop slave;

# 重置从服务器

reset slave;

# 然后排查配置的问题,重新配置一遍

change master to

master_host='192.168.222.132',

master_user='slave',

master_password='123456',

master_log_file='mysql-bin.000011',

master_log_pos=709;

# 再次启动

start slave;

# 查看服务器状态

show slave status \G;

尝试创建一个表,查看是否同步

CREATE TABLE `user` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id',

`user_name` varchar(255) DEFAULT NULL,

`pass_word` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

AAffA0nNPuCLAAAAAElFTkSuQmCC

到这里我们已经成功啦!

注意:

我们配置第三台服务的时候,需要从新创建一个给第三台服务器访问的主服务器的账号。同时,由于我们是在本地虚拟机上安装的读写分离环境,所以每一次启动mysql或者关闭虚拟机都会导致mysql的position改变,所以我们要跟随着配置变化,每次启动读写环境前检查一下,修改配置和上面采坑解决的步骤一直。

本文由博客一文多发平台 OpenWrite 发布!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值