正文
一、准备机器(三台机器都需要提前配置好环境,虚拟机可以克隆)
主节点: 192.168.1.1
从节点1:192.168.1.2
从节点2:192.168.1.3
二、主节点配置
1.配置/etc/my.cnf(追加)
# servier-id 每台mysql都要不同 server-id=1 log-bin=mysql-bin
2.重启服务
3.进入mysql命令窗口
mysql -uroot -p
4.新增用户(账号slave 密码123456)
CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; flush privileges;
5.查看用户
use mysql; select user,host from user;
6.查看master状态
SHOW master status\G;
三、从节点1配置
1.配置/etc/my.cnf(追加)
# 设置server_id,注意唯一 server-id=2 # 打开二进制功能,MASTER主服务器必须打开此项 log-bin=slave1-mysql-bin
2.重启服务
3.进入mysql命令窗口
mysql -uroot -p
4.关联master
master_log_file=
master_log_pos=
master_log_file,master_log_pos分别是master中File,Position两个字段的值
change master to master_host='192.168.1.1',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=462;
5.启动slave
start slave;
6.查看slave状态
show slave status\G;
遇到问题
Slave_IO_Running: No
Slave_SQL_Running: Yes
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work
修改/mysql/data/auto.cnf
主节点
[auto] server-uuid=6ac0fdae-b5d7-11e4-a9f3-0800278ce5c9
从节点1
[auto] server-uuid=c9f4b0b7-6765-11ec-adb9-000c2949536c
从节点2
[auto] server-uuid=c9f4b0b7-6765-11ec-adb9-000c294953ac
注意:需要重新启动 并启动从节点
7.重新设置slave节点(不需要重新设置,请跳过)
(1)停止slave节点
stop slave;
(2)重新设置
change master to master_host='192.168.1.1',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=462;
(3)启动slave
start slave;
四、从节点2配置
1.配置/etc/my.cnf(追加)
# 设置server_id,注意唯一 server-id=3 # 打开二进制功能,MASTER主服务器必须打开此项 log-bin=slave2-mysql-bin
2.重启服务
3.进入mysql命令窗口
mysql -uroot -p
4.关联master
master_log_file=
master_log_pos=
master_log_file,master_log_pos分别是master中File,Position两个字段的值
change master to master_host='192.168.1.1',master_user='slave',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=462;
5.启动slave
start slave;
6.查看slave状态
show slave status\G;
大功告成