mysql是一款很好用的数据库,易于上手,本篇文章记录了笔者进行mysql主从复制加读写分离的过程
环境:centos 7 + mysql 5.7
关于读写分离,可以参考我的另一篇文章https://blog.csdn.net/J4ffee/article/details/89325929
一、主从复制的搭建
运用两台服务器:一台主服务器,一台从服务器(从服务器可以加多台),主服务器负责写,从服务器负责读(真实环境中,读的需求要大于写的需求)
主:192.168.122.128
从:192.168.122.140
1.配置主服务器:
给从服务器授权:
GRANT REPLICATION SLAVE ON *.* to 'repuser'@'192.168.%.%' identified by ‘123456’;(%表示只要在192.168这个网段 内的ip都行)
我们可以查看一下是否授权成功
我们看到已经成功
查看主服务器状态:
2.配置从服务器:
修改从数据库的配置文件(my.cnf 如果不知道文件位置,可以使用命令 find / -name my.cnf,一般的话,都会放在etc文件下)
修改my.cnf文件,在mysqld下面加如下内容:
server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
3.重启两台数据库(systemctl restart mysqld)
4.连接master服务器(在从数据库中执行)
change master to master_host='192.168.122.128',master_port=3306,master_user='root',master_password='123456',master_log_file='master-bin.000001',master_log_pos=154;
注意:master_host为主服务器地址,master_port为主服务器端口,master_user为第一步中授权的用户名,master_password为其密码,master_log_file,master_log_pos分别为查看服务器状态时查询到的File和Position(show master status命令查询得到)
5.启动slave数据同步
start slave
6.检查从服务器状态
登录从服务器,使用命令 show slave status\G;
只有当Slave_IO_Running和Slave_SQL_Running都是yes时,才算成功,如果你两台centos是克隆的,可能失败,百度有答案,直接百度Slave_IO_Running 显示no,会有答案
7.测试
到现在为止,主从复制算是搭建好了,接下来进行测试:
选择t两个数据库里的test表
主数据库test表:
从数据库test表:
在主数据库中插入数据
检查从数据库(记得刷新)
完美!!!!!
光主从复制是不够的,读写分离将在下篇文章中进行介绍