Mysql主从复制教程图文教程
- 前提:准备3台虚拟机(系统为centos7,已安装好MySQL)
192.168.252.10 (master)为主机;
192.168.252.20 (slave)为从机;
192.168.252.30 (slave)为从机;
- 原理:
第一步:先配置master主机
查看是否开启binlog日志
show variables like '%log_bin%';
第二步:开启master主机binlog日志
vim /etc/my.cny
第三步:重启mysql
service mysqld restart
第四步 : 输入密码进入mysql
mysql -hlocalhost -uroot -p
第五步:查看bin-log日志
log-bin ON 代表开启
show variables like '%log_bin%';
第六步:创建用户
- 主节点上的创建有复制权限的用户,其他从节点可以通过该用户进行主从复制’’%"代表所以ip地址可以访问该用户
%:是运行使用该用户的ip地址
mstest:是新创建的用户名
123456:是新创建的用户名的密码
GRANT REPLICATION SLAVE,FILE ON *.* TO 'mstest'@'%' IDENTIFIED BY '123456';
第七步:刷新权限
Flush privileges
第八步:配置 从机slvae,查看中继日志
show variables like '%relay%' ;
第九步:添加中继日志
注意:
server-id一定是唯一的,不能跟其他主机从机id一样
//命令
vim /etc/my.cnf
//添加内容
server-id=6
relay-log=relay-log
relay-log-index=relay-log-index
第十步:查看中继日志
show variables like '%relay_log%'
第十一步:配置访问主节点信息的参数信息
- 先访问进入master主机,
show master status\G
注意:
Position(位置) :这个位置是是动态的,只要操作数据库一次,这个位置就会发生改变,下一台从机(slvae)配置时,MASTER_LOG_POS一定要是主机(master)上最新的position。
- 进入从机slave
CHANGE MASTER TO MASTER_HOST='192.168.252.10',MASTER_PORT=3306,MASTER_USER='mstest',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=154;
第十二步:启动复制线程
start slave;
第十三步:查看节点状态信息
show master status\G
第十四步:检查是否成功
第二台slvae(从机):
service mysqld restart
第十步:查看中继日志
show variables like '%relay_log%'
第十一步:配置访问主节点信息的参数信息
- 先访问进入master主机,
show master status\G
注意:
Position(位置) :这个位置是是动态的,只要操作数据库一次,这个位置就会发生改变,下一台从机(slvae)配置时,MASTER_LOG_POS一定要是主机(master)上最新的position。
- 进入从机slave,配置主机的Posi
CHANGE MASTER TO MASTER_HOST='192.168.252.10',MASTER_PORT=3306,MASTER_USER='mstest',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=154;
第十二步:启动复制线程
start slave;
第十三步:查看节点状态信息
show master status\G
常见错误
解决方案:
- 1、可能是主机的polision(位置)不对,去查看,并修改
在主机master中mysql查找 show master status\G 修改 去从机slvae vim /etc/my.cnf
这个position一定要主机最新的。