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

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

本文主要为了记录MySQL搭建读写分离的操做,是本人的操做纪实,并无详细讲解其中的原理和操做设置,若是须要详细解释的,不建议阅读。linux

环境准备:

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复制代码

在这里插入图片描述

  • 启动ntp服务
systemctl start ntpd复制代码

  • 检验ntp是否成功安装运行,若是正常工做咱们能够获得以下信息
ntpq -p复制代码

在这里插入图片描述

将咱们三台服务所有作以上配置,配置完成以后,咱们就能够开始设置主mysql服务器了sql

第二步:配置 MySQL 主服务器

  • 打开my.cnf配置文件,进行以下配置
# 打开文件
vi /etc/my.cnf复制代码

找到配置文件中的这一段,而后按照下面的配置进行修改在这里插入图片描述数据库

server-id=132   # 使用ip的后端做为咱们的主服务id
log_bin=mysql-bin  # 开启MySQ二进制日志系统。复制代码

  • 登陆mysql,而后获取数据库列表
mysql -uroot -P3306 -p123456 -h192.168.222.132

show databases;复制代码

在这里插入图片描述

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;复制代码

在这里插入图片描述

若是显示结果和咱们配置一致证实咱们的主服务器配置已经成功啦!能够进行从服务器的配置后端

配置从服务器

  • 打开my.cnf配置文件,进行以下配置
# 打开文件
vi /etc/my.cnf复制代码

找到配置文件中的这一段,而后按照下面的配置进行修改在这里插入图片描述服务器

server-id=133   # 使用ip的后端做为咱们的主服务id
log_bin=mysql-bin  # 开启MySQ二进制日志系统。复制代码

  • 登陆mysql,而后获取数据库列表
mysql -uroot -P3306 -p123456 -h192.168.222.133

show databases;复制代码

在这里插入图片描述

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;复制代码

在这里插入图片描述出现上面这两个“Yes”就证实已经配置成功了微信

  • 若是发现配置不对,须要先停掉从服务器
stop slave;复制代码

  • 而后重置从服务器
reset slave;复制代码

采坑解决

在这里插入图片描述若是出现如上报错,咱们须要先中止从服务器。该问题引发的缘由是我以前安装数据库的时候并无发现他们的版本不一致致使的,停机更新版本以后再次按照下面步骤操做就行了。学习

# 先停掉从服务器
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;复制代码

在这里插入图片描述

到这里咱们已经成功啦!spa

注意:

咱们配置第三台服务的时候,须要重新建立一个给第三台服务器访问的主服务器的帐号。同时,因为咱们是在本地虚拟机上安装的读写分离环境,因此每一次启动mysql或者关闭虚拟机都会致使mysql的position改变,因此咱们要跟随着配置变化,每次启动读写环境前检查一下,修改配置和上面采坑解决的步骤一直。rest

作一个有底线的博客主

相关文章
相关标签/搜索