使用mysql 8版本,搭建一主一从
- 主节点:192.168.226.130,mysql端口:3306
- 从节点:192.168.226.137,mysql端口:3306
- 主节点mysql同步用户:repl,密码:repl.123
主节点配置
主节点配置文件:
1 2 3 4 5 6
| # 在mysqld部分下添加
# binlog文件名 log-bin=binlog # master节点id server-id=1000
|
1 2
| # 重启主节点 systemctl restart mysql
|
root用户操作主节点,添加repl用户
1 2 3
| CREATE USER 'repl'@'192.168.226.%' IDENTIFIED BY 'repl.123'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.226.%'; flush privileges;
|
添加用户repl,限制可从192.168.226.0/24网段访问,从节点在此网段内
1 2
| reset master; show master status;
|
因为是首次初始化master,执行了reset master,将binlog清空,在此命令之前的操作不会同步;已建立主从关系的master节点不可执行,否则主从同步出错
从节点配置
从节点配置文件:
1 2 3 4 5 6 7
| # 在mysqld部分下添加
# 从节点id server-id=1001 # 从节点开启只读 read_only=1 super_read_only=1
|
1 2
| # 重启从节点 systemctl restart mysql
|
root用户操作从节点,设置从192.168.226.130主节点同步:
1 2 3 4 5 6 7
| stop slave; reset slave; # mysql 8, 需要指定GET_MASTER_PUBLIC_KEY=1加密传输 # binlog.000001、157来自主节点`show master status`执行结果 CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.226.130',SOURCE_PORT=3306,SOURCE_USER='repl',SOURCE_PASSWORD='repl.123',SOURCE_LOG_FILE='binlog.000001',SOURCE_LOG_POS=157,GET_MASTER_PUBLIC_KEY=1; start slave; show slave status;
|