部署MSS架构的mysql集群
环境:
master mysql5.7 192.168.33.6
slave 中继 mysql5.7 192.168.33.7
slave mysql5.7 192.168.33.8
部署master(192.168.33.6上操作)
- 安装mysql
yum install ./mysql*.rpm
systemctl start mysqld
vim /etc/my.cnf
validate-password=OFF
systemctl restart mysqld
- 获取mysql生成的临时密码
grep 'password' /var/log/mysqld.log #获取临时密码
- 使用临时密码登录mysql
mysql -u root -p'临时密码'
mysql> set password for root@localhost = password('123456'); #修改root用户密码为123456
mysql> flush privileges;
mysql> exit
在slave中继和slave上重复上面安装mysql的操作
- 创建用于同步的数据库:
mysql -u root -p123456
mysql> create database MSS;
mysql> use MSS;
mysql> create table Table1(id int,name varchar(20));
- 在master服务器上授权用户:
mysql> grant replication slave on *.* to repl@'192.168.33.%' identified by '123456';
mysql> flush privileges;
mysql> exit;
- 开始复制前保证数据库的一致
mysqldump -u root -p123456 MSS > MSS.sql
将sql文件传给从服务器
scp MSS.sql 192.168.33.7:/root
scp MSS.sql 192.168.33.8:/root
- 更改master上的mysql配置文件
vim /etc/my.cnf
server-id=1
log-bin=mysql-bin-master
binlog-do-db=MSS
binlog-ignore-db=mysql
sync-binlog=1
binlog-format=row
保存退出后,重启mysqld服务
systemctl restart mysqld
部署slave中继(192.168.33.7上操作)
- 安装mysql,步骤同上,此处省略
- 创建用于同步的数据库
mysql -u root -p123456
mysql> create database MSS;
mysql> exit;
- 导入数据库MSS.sql
mysql -u root -p123456 MSS < MSS.sql
- 配置my.cnf,开启mysql的bin-log
vim /etc/my.cnf
server-id=2
log-bin=mysql-bin-slave1
log-slave-updates=1 #把它从relay-log当中读取出来的二进制日志执行并且在这台机器上的执行操作也记录到自己的二进制日志当中,这样才能使第三台slave通过中继slave读取到相应数据的变化
binlog-format=row
- 重启mysql
systemctl restart mysqld
授权slave用户同步(192.168.33.7上操作)
mysql -u root -p123456
mysql> stop slave;
mysql> change master to master_host='192.168.33.6',master_user='repl',master_password='123456';
mysql> start slave;
mysql> show slave status\G
mysql> set global vaildata_password_policy=0;
mysql> set global validata_password_length=1;
mysql> grant replication slave on *.* to 'repl'@'192.168.33.8' identified by '123456';
mysql> flush privileges;
部署slave(192.168.33.8上操作)
- 安装mysql,步骤同上面的安装mysql步骤完全一致,此处省略
- 启动mysqld后,修改配置文件
vim /etc/my.cnf
server-id = 3
log-bin=mysql-bin-slave2
binlog-format=row
- 重启mysqld服务,让配置生效
systemctl restart mysqld
- 指定slave中继服务器作为slave的主服务器:
mysql -u root -p123456
create database MSS;
mysql -u root -p123456 MSS < MSS.sql
stop slave;
change master to master_host='192.168.33.7',master_user='repl',master_password='123456';
start slave;
show slave status \G
测试
从master上插入测试数据(192.168.33.6上操作)
mysql -u root -p123456
use MSS;
create table test(id int,name varchar(20));
insert into test values(1,'AA');
在slave中继和slave上查看数据
select * from MSS.test;