介绍
实现一主多从架构
目标
- 在CentOS7中配置mysql集群;
- 一主多从架构设计;
- 熟悉mysql的集群配置;
环境
- CentOS7
- mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
- VMware
分析
节点 | 说明 |
---|---|
192.168.157.130 | Master(server-id=1) |
192.168.157.131 | slave-1(server-id=2) |
192.168.157.131 | slave-2(server-id=3) |
Master 配置
进入 vi /etc/my.cnf
- 【必须】主服务器唯一ID
server-id =1
- 【必须】启用二进制日志
log-bin = mysql-bin
slave-1 配置
进入 vi /etc/my.cnf
- 【必须】主服务器唯一ID
server-id =2
- 【必须】启用二进制日志
llog-bin = mysql-bin
slave-2 配置
进入 vi /etc/my.cnf
- 【必须】主服务器唯一ID
server-id =3
- 【必须】启用二进制日志
log-bin = mysql-bin
Master 创建复制用户并授权
##---------主节点配主--------------
#创建复制用户repl_user 密码 repl_passwd
CREATE USER repl_user IDENTIFIED BY 'repl_passwd';
#授权 用户/从集群IP/用户密码(一主一从)
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'192.168.157.131' IDENTIFIED BY 'repl_passwd';
#授权 不限制IP(一主多从)
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'repl_passwd';
#刷新
FLUSH PRIVILEGES;
# 查询master的状态
SHOW MASTER STATUS;
# 记录下File和Position的值
# 执行完此步骤后不再执行主服务器MySQL,防止主服务器状态值变化
# file= mysql-bin.000050 position= 2620
slave 复制配置
##---------从节点配置--------------
# 配主复制主机
# 主节点IP、用户、密码、file= mysql-bin.000050 position= 2620 (来自主节点)
CHANGE MASTER TO MASTER_HOST='192.168.157.130',MASTER_USER='repl_user',MASTER_PASSWORD='repl_passwd',MASTER_LOG_FILE='mysql-bin.000050',MASTER_LOG_POS=2620;
# 启动从服务器复制功能
START SLAVE;
# 查看从机状态
SHOW SLAVE STATUS;
# 下面两个参数都是YES,则说明主从配置成功!
# Slave_IO_Running:Yes
# Slave_SQL_Running:Yes
测试一主多从
常见错误解决
1.问题: Slave_IO_Running=No ,原因:虚拟机克隆造成mysql的uuid相同。
解决:从库 找到auto.cnf 文件修改uuid(随意只要不一样即可) 这里修改最后一位0为1,
具体操作:
find / -iname "auto.cnf"
vim /data/mysql/auto.cnf
原内容
[auto]
server-uuid=6a36b5eb-b423-11eb-9576-0050563d5ed0
调整后内容,自定义即可,把最后一位0替换为1
[auto]
server-uuid=6a36b5eb-b423-11eb-9576-0050563d5ed1
重启mysql
systemctl restart mysql
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。