主机配置
第1步:配置master
-
- 查看是否开启binlog日志
show variables like '%log_bin%';
-
- 开启mysql的binlog日志
- vim /etc/my.cnf 插入配置
- log-bin=/usr/local/mysql/mysql-bin
- mysql5.7无法启动服务改为:log-bin=mysql-bin 能正常启动
- server-id=123
- server-id的值必须与其他节点的不一样,
- 开启mysql的binlog日志
第2步:重启mysql
-
- systemctl restart mysqld /service mysqld restart
- systemctl status mysqld
- 重新查看bin-log日志文件
- show variables like ‘%log_bin%’
log-bin ON 表示已开启
第3步:创建用户
-
- 主节点上创建有复制权限的用户,其他从节点可以通过该用户进行主从复制.
- create user zwh identified by ’123456’
grant all privileges on *.* to ‘zwh'@'%' identifield by ‘123456'
'%' :表示所有的ip地址都可以访问该用户
-
- 刷新权限
- flush privileges
- 刷新权限
从机配置
第1步:开启中继日志
查看中继日志
show variables like '%relay%'
配置中继日志后面添加
vim /etc/my.cnf
#中继日志
server-id=124
relay-log=relay-log
relay-log-index=relay-log.index
保存之后重启
service mysqld restart 或者 systemctl restart mysql
第2步:配置访问主节点的参数信息
在主机输入show master status 进行查询
master_log_file
master_log_pos
change master to master_host='192.168.126.123' ,master_user='zwh',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=585;
第3步:启动复制线程
start slave;
START SLAVE 可以指定线程类型:IO_THREAD ,SQL_THREAD, 如果不指定,则两个都启动
第4步:查看从节点状态信息
show slave status\G
io线程、sql线程问题
如果io线程、sql线程值为NO,那么请先停止slave,原因:主节点的position发生变化(一般是由于从节点发生了写操作,或者从节点重启食物回滚导致)
-
- Mysql> stop slave;
重新配置主节点的信息
Mysql>
change master to master_host='192.168.126.123' ,master_user='zwh',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=585;
-
- 《======与主节点的值同步
可以在主节点上通过:
-
- Mysql> Show master status\G;